Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android How to find Dynamic IP from device? [duplicate]

I have method to find the DHCP address and host address. how to find the dynamic ip address assigned to my device. I am able get the address from http://www.ip2location.com/default.aspx

how to get this IP in device?

like image 602
Jana Avatar asked Jan 22 '26 00:01

Jana


2 Answers

ipString = String.format( 
    "%d.%d.%d.%d", 
    (ip & 0xff), 
    (ip >> 8 & 0xff),
    (ip >> 16 & 0xff),
    (ip >> 24 & 0xff));
like image 131
ash Avatar answered Jan 24 '26 14:01

ash


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.

like image 45
Thomas Børlum Avatar answered Jan 24 '26 14:01

Thomas Børlum



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!