/**
-
获取本地IP地址
- */
public static String getLocalIp() {
String localIp = null;
Enumeration networks = null;
try {
// 获取所有网卡设备
networks = NetworkInterface.getNetworkInterfaces();
if (networks == null) {
// 没有网卡设备 打印日志 返回null结束
System.out.println(“networks is null”);
return null;
}
} catch (SocketException e) {
e.printStackTrace();
}
InetAddress ip;
Enumeration addrs;
// 遍历网卡设备
while (networks.hasMoreElements()) {
NetworkInterface ni = networks.nextElement();
try {
// 过滤掉 loopback设备、虚拟网卡
if (!ni.isUp() || ni.isLoopback() || ni.isVirtual()) {
continue;
}
} catch (SocketException e) {
e.printStackTrace();
}
addrs = ni.getInetAddresses();
if (addrs == null) {
System.out.println(“InetAddress is null”);
continue;
}
// 遍历InetAddress信息
while (addrs.hasMoreElements()) {
ip = addrs.nextElement();
if (!ip.isLoopbackAddress() && ip.isSiteLocalAddress() && ip.getHostAddress().indexOf("😊 == -1) {
try {
localIp = ip.toString().split("/")[1];
} catch (ArrayIndexOutOfBoundsException e) {
localIp = null;
}
}
}
}
return localIp;
}