You could use an external server to request your IP, like @Midday suggests. This is probably the easiest solution. The problem is that you will have to depend on the network and the remote server which might not always be reliable.
You can also get it directly from your device, but you have to jump through hoops to do so – getting your device's IP address isn't as simple as it should be on Android.
WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
int ipAddress = wifiInfo.getIpAddress();
Notice that the ipAddress is an integer.
For instance if your IP address is "86.52.119.245":
- the int returned by
getIpAddress will be 4118230102.
- Translated into binary this number is: 11110101 01110111 00110100 01010110.
- Convert each byte into a decimal, and then you get the numbers: 80 35 83 10
- Notice that the numbers are in network order so you have to flip it.
Hope it helps.