Получение IP-адреса моей локальной сети (192.168.xxxx) (IPV4)

В моем устройстве Android я пытаюсь найти его IP-адрес (IPV4).
Если я сделаю следующий код

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

Код дает мне 127.0.0.1.
Я хотел получить фактический IP 198.168.xx.xx.

(В моем компьютере тот же код дает мне фактический IP-адрес.)

Solutions Collecting From Web of "Получение IP-адреса моей локальной сети (192.168.xxxx) (IPV4)"

 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; } 

Дать разрешения

Также добавьте mainfest.

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

Вы можете использовать это, чтобы получить свой IP-адрес.

 WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE); int ipAddress = wifiManager.getConnectionInfo().getIpAddress(); return String.format("%d.%d.%d.%d", (ipAddress & 0xff), (ipAddress >> 8 & 0xff), (ipAddress >> 16 & 0xff), (ipAddress >> 24 & 0xff)); 

Это возвращает его как строку в форме «XXXX»

Единственное разрешение, которое вам нужно в вашем manifest.xml – это

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