您的位置:首页 > 移动开发 > Android开发

android获取设备eth0,eth1,wlan0的IP地址

2017-03-16 11:04 1261 查看
在做一些跟网络相关的需求时,很多时候需要获取到相关网络类型的IP地址,如下图:



这个时候用什么方法来获取这个IP地址呢?楼主在之前的开发中,找到了以下方法,代码如下,仅供参考:

/**
* Get Ip address 自动获取IP地址
*
* @throws SocketException
*/
public static String getIpAddress(String ipType) throws SocketException {
String hostIp = null;
try {
Enumeration nis = NetworkInterface.getNetworkInterfaces();
InetAddress ia = null;
while (nis.hasMoreElements()) {
NetworkInterface ni = (NetworkInterface) nis.nextElement();

if (ni.getName().equals(ipType)) {

Enumeration<InetAddress> ias = ni.getInetAddresses();
while (ias.hasMoreElements()) {

ia = ias.nextElement();
if (ia instanceof Inet6Address) {
continue;// skip ipv6
}
String ip = ia.getHostAddress();

// 过滤掉127段的ip地址
if (!"127.0.0.1".equals(ip)) {
hostIp = ia.getHostAddress();
break;
}
}
}
}
} catch (SocketException e) {
e.printStackTrace();
}
Log.d("vivi", "get the IpAddress--> " + hostIp + "");
return hostIp;
}
其中的ipType就是需要获取的网络ip地址类型,我们可以传入eth1,eth0,wlan0,等,为了正确获取到ip地址,我们需要过滤掉ipv6的地址和127.0.0.1。

感谢阅读,有什么不对的地方还请大家指正。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android eh1 eth0 network wlan0