2012-11-18 17 views
5

Jeśli podłączono wifi urządzenia, zakładam, że urządzenie ma przypisany adres IP sieci LAN przypuszczalnie przez dhcp działający na routerze.Jak znaleźć adres IP LAN urządzenia z systemem Android?

W jaki sposób można znaleźć adres IP sieci LAN (nie zewnętrzny adres IP) w interfejsie Wi-Fi?

Dzięki,

+1

** "Jeżeli wifi z urządzeniem jest podłączony, Zakładam, że urządzenie ma przypisany adres IP w sieci LAN przypuszczalnie przez DHCP uruchomiony na routerze. "** - Niekoniecznie. Chociaż odpowiedź od ariefbayu pomoże ci znaleźć adresy IP różnych interfejsów sieciowych, nie można założyć, że adres IP interfejsu Wi-Fi jest jeden z sieci LAN. W różnych krajach istnieją usługi "szerokopasmowego" wifi - oznacza to, że jeśli Twoim wymaganiem jest komunikacja z rzeczywistą siecią WLAN, twoje oprogramowanie może nie działać, jeśli urządzenie użytkownika jest podłączone do sieci rozległej. – Squonk

Odpowiedz

7

NetworkInterface pomoże Ci:

String ipAddress = null; 
try { 
    for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) { 
     NetworkInterface intf = en.nextElement(); 
     for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) { 
      InetAddress inetAddress = enumIpAddr.nextElement(); 
      if (!inetAddress.isLoopbackAddress()) { 
       ipAddress = inetAddress.getHostAddress().toString(); 
      } 
     } 
    } 
} catch (SocketException ex) {} 
+1

Czy to również nie zwróci adresu WAN, jeśli jest połączony z 3G/4G? – matcauthon

Powiązane problemy