[英]How to find IP address of OTHER WiFi Devices on network programmatically in android
[英]find local network address in Android - including IP and NetMask? (ethernet not wifi)
在Android模拟器中,地址( eth0
)为10.0.2.15/24
在支持以太网的平板电脑上, eth0
具有类似的地址:例如192.168.0.2/24
如何通过现有的Android API找到它? (现有版本- 在Android L预览之前 !)。
我知道可以通过WifiManager.getDhcpInfo()在WiFi中完成此操作-但我对以太网感兴趣-甚至更好的通用方法。
这是一种获取掩码的方法,也就是网络前缀长度。 最小的API是9,并且需要INTERNET权限。 该地址具有'/'前缀,但是可以通过添加.toString.substring(1)
或类似内容轻松删除。
public void logLocalIpAddresses() {
Enumeration<NetworkInterface> nwis;
try {
nwis = NetworkInterface.getNetworkInterfaces();
while (nwis.hasMoreElements()) {
NetworkInterface ni = nwis.nextElement();
for (InterfaceAddress ia : ni.getInterfaceAddresses())
Log.i(TAG, String.format("%s: %s/%d",
ni.getDisplayName(), ia.getAddress(), ia.getNetworkPrefixLength()));
}
} catch (Exception e) {
e.printStackTrace();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.