2012-11-18 10 views
5

Se il dispositivo wifi è collegato, presumo che il dispositivo abbia un indirizzo IP LAN assegnato presumibilmente da un DHCP che gira su un router.Come trovare l'indirizzo IP LAN del dispositivo Android?

Come si può trovare qual è l'indirizzo IP LAN (non l'ip esterno) sull'interfaccia wifi?

Grazie,

+1

** "Se è collegato wifi del dispositivo, suppongo che il dispositivo ha un indirizzo LAN IP assegnato presumibilmente da un DHCP in esecuzione su un router. "** - Non necessariamente. Sebbene la risposta di ariefbayu possa aiutarti a trovare gli indirizzi IP delle varie interfacce di rete, non puoi supporre che l'indirizzo IP di un'interfaccia wifi sia uno di una LAN. Esistono servizi Wi-Fi "wide-area" in vari paesi: ciò significa che se il tuo requisito è quello di comunicare con una LAN wifi effettiva, il tuo software potrebbe non funzionare se il dispositivo dell'utente è connesso a una rete Wi-Fi "wide-area". – Squonk

risposta

7

NetworkInterface vi aiuterà a:

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

Questo non restituirà anche un indirizzo WAN se connesso a 3G/4G? – matcauthon

Problemi correlati