Android获取上网IP地址Demo
Android 上网 IP 地址获取的 demo 项目,比较实用,逻辑清晰,代码也挺简洁的,适合你快速集成到项目里用。用的是 Java 语言,通过遍历网络接口拿到设备的外网 IP,还兼顾了 Wi-Fi 和移动数据的兼容问题,得蛮周到。权限部分也考虑到了新版 Android 的限制,像ACCESS_NETWORK_STATE
和INTERNET
权限都加上了,运行时权限也一并了。
网络状态检测用的是ConnectivityManager
,可以判断当前是不是联网状态,避免空 IP 的尴尬。
通过NetworkInterface
遍历网络接口,排除掉本地回环地址,挑出那条对外通信的IPv4
地址。像下面这样:
Enumeration networkInterfaces = NetworkInterface.getNetworkInterfaces();
while (networkInterfaces.hasMoreElements()) {
NetworkInterface ni = networkInterfaces.nextElement();
if (!ni.getName().equals("lo")) {
Enumeration inetAddresses = ni.getInetAddresses();
while (inetAddresses.hasMoreElements()) {
InetAddress addr = inetAddresses.nextElement();
if (addr instanceof Inet4Address && !addr.isLoopbackAddress()) {
String ip = addr.getHostAddress();
// IP 地址就在这里了
}
}
}
}
比较贴心的一点是,它考虑到了设备同时连着 Wi-Fi 和移动网络的情况,给了你选择策略的空间,比如优先拿 Wi-Fi 的 IP 啥的。
建议你把这段逻辑封装成一个小工具类,用起来方便,也好维护。UI 那块也有个简单界面,方便测试输出。
哦对了,测试的时候记得确保设备联网,不然拿不到 IP 也正常哈。
如果你在开发需要联网通信的 App,或者要调试设备 IP,拿它练手或者做参考都挺合适。
1.14MB
文件大小:
评论区