package com.xxxxx.util;
import java.net.Inet4Address;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.util.Enumeration;
/**
* 获取本机IP 地址
* Created by Chryl on 2023/5/21.
*
* @author Chryl
*/
public class IpUtil {
public static String INTRANET_IP = getIntranetIp(); // 内网IP
public static String INTERNET_IP = getInternetIp(); // 外网IP
/**
* 获得内网IP
*
* @return 内网IP
*/
private static String getIntranetIp() {
try {
return InetAddress.getLocalHost().getHostAddress();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
/**
* 获得外网IP
*
* @return 外网IP
*/
private static String getInternetIp() {
try {
Enumeration<NetworkInterface> networks = NetworkInterface.getNetworkInterfaces();
InetAddress ip = null;
Enumeration<InetAddress> addrs;
while (networks.hasMoreElements()) {
addrs = networks.nextElement().getInetAddresses();
while (addrs.hasMoreElements()) {
ip = addrs.nextElement();
if (ip != null
&& ip instanceof Inet4Address
&& ip.isSiteLocalAddress()
&& !ip.getHostAddress().equals(INTRANET_IP)) {
return ip.getHostAddress();
}
}
}
// 如果没有外网IP,就返回内网IP
return INTRANET_IP;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
Java获取本机IP的方法
于 2023-05-31 20:41:16 首次发布