Search code examples
javaandroidinetaddress

Getting My LAN ip address (192.168.xxxx) (IPV4)


In my android device I am trying to find its IP address(IPV4).
If I do the following code

InetAddress inet = InetAddress.getLocalHost();
System.out.println(inet.getHostAddress()); //giving me 127.0.0.1

The code is giving me 127.0.0.1.
I wanted to get the actual IP 198.168.xx.xx.

(In My pc the same code giving me the actual IP though.)


Solution

  • public static String getIpAddress() { 
                try {
                    for (Enumeration en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {
                        NetworkInterface intf = en.nextElement();
                        for (Enumeration enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) {
                            InetAddress inetAddress = enumIpAddr.nextElement();
                            if (!inetAddress.isLoopbackAddress()&&inetAddress instanceof Inet4Address) {
                                String ipAddress=inetAddress.getHostAddress().toString();
                                Log.e("IP address",""+ipAddress);
                                return ipAddress;
                            }
                        }
                    }
                } catch (SocketException ex) {
                    Log.e("Socket exception in GetIP Address of Utilities", ex.toString());
                }
                return null; 
        }
    

    Give permissions

    Also add in mainfest.

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />