Getting IP address of the device in Android

Download source code of the article.

For one of my project I need to get the IP address of the device, I searched a lot and found this link.

The method is to enumerate all network interfaces and find the IP address if it is not loop-back adapter. This will give the IP address if you are connected to a network (WiFi or Cellular).

You can also use the WifiManger to get he IP address if you are connected to WiFi network. The following code retrieves the WiFi IP address:

WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
int ipAddress = wifiInfo.getIpAddress();

Note that the getIpAddress returns an integer value. To convert to readable format we can use the following code:

String.format("%d.%d.%d.%d",
(ipAddress & 0xff),
(ipAddress >> 8 & 0xff),
(ipAddress >> 16 & 0xff),
(ipAddress >> 24 & 0xff))

Note: To use the first method you need the android.permission.INTERNET permission, otherwise it will throw unknown error. For the second method you need android.permission.ACCESS_WIFI_STATE.

9 Responses

    • Umang October 9, 2014 / 6:51 pm

      But it is deprecated.

  1. jagadeesh June 11, 2015 / 2:33 pm

    it gives 0.0.0.0 please give correct solution.

    • Pratheek A December 9, 2015 / 11:07 pm

      @jagadeesh – Connect to internet anf try. It works perfcetly!

    • Smit February 2, 2017 / 1:11 am

      Yes I tried it too it gives 0.0.0.0 …. please someone give correct solution

    • Smit February 2, 2017 / 1:12 am

      Did u get the solution for the same ….i need it….

Leave a Reply

Your email address will not be published. Required fields are marked *