Native.js 获取4G网络/数据网络 IP地址
Java代码
/**
* @Title: getIpAddress
*
* @Description: 获取设备ip地址
*
* @return String
*/
public static String getIpAddress() {
try {
for (Enumeration<NetworkInterface> enNetI = NetworkInterface.getNetworkInterfaces(); enNetI.hasMoreElements();) {
NetworkInterface netI = enNetI.nextElement();
for (Enumeration<InetAddress> enumIpAddr = netI.getInetAddresses();enumIpAddr.hasMoreElements();) {
InetAddress inetAddress = enumIpAddr.nextElement();
if (inetAddress instanceof Inet4Address && !inetAddress.isLoopbackAddress()) {
return inetAddress.getHostAddress();
}
}
}
} catch (SocketException e) {
e.printStackTrace();
}
return "";
}
转换为JS代码
// 导入网络接口类
var NetworkInterface = plus.android.importClass("java.net.NetworkInterface")
// 导入InetAddress类
var InetAddress = plus.android.importClass("java.net.InetAddress")
// 导入Inet4Address类
var Inet4Address = plus.android.importClass("java.net.Inet4Address")
// 定义变量,获取网络接口
var networkInterface = NetworkInterface.getNetworkInterfaces()
// 遍历网络接口
while (plus.android.invoke(networkInterface, 'hasMoreElements')) {
var networkInterfaceElement = plus.android.invoke(networkInterface, 'nextElement')
// 获取各个网络接口的地址
var inetAddresses = plus.android.invoke(networkInterfaceElement, 'getInetAddresses')
// 遍历从各个网络接口获取的地址
while (plus.android.invoke(inetAddresses, 'hasMoreElements')) {
var inetAddressesElement = plus.android.invoke(inetAddresses, 'nextElement')
// 判断获取的地址不是环回接口的地址并且属于IPv4地址
if (!plus.android.invoke(inetAddressesElement, 'isLoopbackAddress') && inetAddressesElement instanceof Inet4Address) {
console.log(plus.android.invoke(inetAddressesElement, 'getHostAddress'))
// 获取主机地址
this.ipAddress = plus.android.invoke(inetAddressesElement, 'getHostAddress')
}
}
}
参考CSDN
Android获取当前网络状态和获取当前设备网络ip地址 - yc的博客 - CSDN博客
Android获取如何获取当前手机IP地址 - 程龙的博客 - CSDN博客
Android获取IP地址的两种方式(准确版) - sinat_16458039的博客 - CSDN博客
android手机两种方式获取IP地址 - 安卓吧 - 博客园
0 个评论
要回复文章请先登录或注册