2012-11-18 75 views
5

如果設備的wifi已連接,我假設設備具有一個LAN IP地址,該IP地址可能是由路由器上運行的DHCP分配的。如何找到android設備的局域網ip地址?

怎樣才能找到wifi接口上的局域網ip地址(不是外部ip)?

感謝,

+1

**「如果設備wifi的連接,我認爲該設備具有由路由器上運行的DHCP分配大概的LAN IP地址。 「** - 不必要。儘管ariefbayu的答案可以幫助您找到各種網絡接口的IP地址,但您不能假定WiFi接口的IP地址是來自LAN的IP地址。在各個國家有「廣域」wifi服務 - 這意味着如果您的要求是與實際的無線局域網進行通信,如果用戶的設備連接到「廣域」無線網絡,則您的軟件可能無法工作。 – Squonk

回答

7

NetworkInterface將幫助您:

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

如果連接3G/4G,這是否也會返回WAN地址? – matcauthon

相關問題