2012-11-18 77 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

相关问题