/***@authoryins
* @date 2018年8月12日下午9:53:58*/
importjava.net.Inet4Address;importjava.net.InetAddress;importjava.net.NetworkInterface;importjava.net.SocketException;importjava.util.Enumeration;/*** 获取本地真正的IP地址,即获得有线或者无线WiFi地址。
* 过滤虚拟机、蓝牙等地址
*@authoryins
* @date 2018年8月12日 下午9:53:58*/
public classGetRealLocalIP {/*** 获取本地真正的IP地址,即获得有线或者无线WiFi地址。
* 过滤虚拟机、蓝牙等地址
*@authoryins
* @date 2018年8月12日下午9:56:35
*@return
*/
public staticString getRealIP() {try{
Enumeration allNetInterfaces =NetworkInterface
.getNetworkInterfaces();while(allNetInterfaces.hasMoreElements()) {
NetworkInterface netInterface=(NetworkInterface) allNetInterfaces
.nextElement();//去除回环接口,子接口,未运行和接口
if (netInterface.isLoopback() ||netInterface.isVirtual()|| !netInterface.isUp()) {continue;
}if (!netInterface.getDisplayName().contains("Intel")&& !netInterface.getDisplayName().contains("Realtek")) {continue;
}
Enumeration addresses =netInterface
.getInetAddresses();
System.out.println(netInterface.getDisplayName());while(addresses.hasMoreElements()) {
InetAddress ip=addresses.nextElement();if (ip != null) {//ipv4
if (ip instanceofInet4Address) {
System.out.println("ipv4 = " +ip.getHostAddress());returnip.getHostAddress();
}
}
}break;
}
}catch(SocketException e) {
System.err.println("Error when getting host ip address"
+e.getMessage());
}return null;
}
}