严寒
严寒
  • 发布:2019-09-23 12:49
  • 更新:2019-09-23 12:49
  • 阅读:2462

Native.js 获取4G网络/数据网络 IP地址

分类:Native.js

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地址 - 安卓吧 - 博客园

问答

Native.js获取android有线网络IP地址

1 关注 分享
2***@qq.com

要回复文章请先登录注册