求获取本机内网IP的方法
求获取本机内网IP的方法//获取本机内网IP
function getIPnw() {
importClass('java.net.Inet4Address');
importClass('java.net.InetAddress');
importClass('java.net.NetworkInterface');
importClass('java.util.Enumeration');
importClass('java.net.Inet6Address');
//获取内网IP地址
var hostIp = null;
try {
var nis = NetworkInterface.getNetworkInterfaces();
var ia = null;
while (nis.hasMoreElements()) {
var ni = nis.nextElement();
var ias = ni.getInetAddresses();
while (ias.hasMoreElements()) {
var ia = ias.nextElement();
if (ia instanceof Inet6Address) {
continue;
}
var ip = ia.getHostAddress();
if (!"127.0.0.1".equals(ip)) {
hostIp = ia.getHostAddress();
break;
}
}
}
} catch (e) {
log("e");
}
return hostIp
};
这个是以前AJ 写的 在IDEA上一直编译不通过
执行错误:Function importClass must be called with a class; had "java.net.Inet4Address" instead.(js/main.js#44 ) 是不是引用类写法不对 求指教 引用方法没问题,应该是EC没找到这个类 试试JavaScript,百度搜下 我试过,有时候可用.不行就还用java,java可以 我试过. public static String getIntranetIPAddress(Context context) {
NetworkInfo info = ((ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();
if (info != null && info.isConnected()) {
if (info.getType() == ConnectivityManager.TYPE_MOBILE) {//当前使用2G/3G/4G网络
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) {
return inetAddress.getHostAddress();
}
}
}
} catch (SocketException e) {
e.printStackTrace();
}
} else if (info.getType() == ConnectivityManager.TYPE_WIFI) {//当前使用无线网络
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
String ipAddress = intIP2StringIP(wifiInfo.getIpAddress());//得到IPV4地址
return ipAddress;
}
} else {
//当前无网络连接,请在设置中打开网络
}
return null;
}
/**
* 将得到的int类型的IP转换为String类型
*
* @param ip
* @return
*/
public static String intIP2StringIP(int ip) {
return (ip & 0xFF) + "." +
((ip >> 8) & 0xFF) + "." +
((ip >> 16) & 0xFF) + "." +
(ip >> 24 & 0xFF);
}
Java 插件方式 m3325599 发表于 2022-10-17 14:27
试试JavaScript,百度搜下 我试过,有时候可用.不行就还用java,java可以 我试过.
按理来说我那代码应该可以用的用shll命令也能获取 5楼是标准答案我之前用的也是 这个方案
页:
[1]