正确获得android设备的IP地址
2024-10-16 03:47:12
网上此类获得android设备IP地址相关的文章有不少,有一篇是比较通用的,但有一个问题:有些设备默认的是IPv6的地址,那段代码获得的就是IPv6的地址。但这显然不是我们想要的,我们需要的是IPv4的地址,于是代码就需要这样修改:
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() && inetAddress instanceof Inet4Address) { //IPv4地址
return inetAddress.getHostAddress().toString();
}
}
}
} catch (SocketException ex) {
Log.d("IP", ex.toString());
}
注意红色的代码,这样获得的就是IPv4的地址了!
最新文章
- 关于input标签和placeholder在IE8,9下的兼容问题
- sql 判断 函数 存储过程是否存在的方法
- XRecyclerView Scrapped or attached views may not be recycled
- ASP.NET 访问路径 错误提示 HTTP 错误 404.8 原来路径中包含bin目录被拒绝
- HDU 3016 线段树区间更新+spfa
- Leetcode 67 Add Binary 大数加法+字符串处理
- 向java的main()传入大量参数
- Linux 系统常用命令汇总(二) vi 文本编辑
- WINCE6.0组件选择说明
- Android Loader详解
- 【Qt】命令行编译Qt程序(nmake)【转】
- WAMP下定义wordpress固定连接出现文章页面404
- C#读取excel等表格常用方法
- POJ 3414--Pots(BFS+回溯路径)
- eclipse 使用问题
- CPP笔记_泛型编程简单总结
- Python Tornado篇
- mybatis分页+springmvc+jsp+maven使用步骤
- FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:javax.jdo.JDODataStoreException: An exception was thrown while adding/validating class(es) :
- 芒果绿的blog
热门文章
- java 中 ArrayList LinkedList Vector 三者的异同点
- 【原】无规矩,不方圆——说一说正则里的exec()和test()
- Office 365 系列三 ------ 创建Office 365普通账号
- C#中Invoke 和 BeginInvoke 的区别
- sql一个表中两个字段合并求和
- 把java对象转化为json格式的对象数组
- C#,委托,匿名委托,Lambda表达式
- Linux性能工具介绍
- [知识整理]Java集合(一) - List
- Windows版的各种Python库安装包下载地址与安装过程