java获取本机IPV4和IPV6地址工具类
java获取本机IPV4和IPV6地址工具类
·
java获取本机IPV4和IPV6地址工具类
工具类如下,自取即可
import org.apache.commons.lang3.StringUtils;
import java.net.InetAddress;
/**
* 类描述:获取本机地址工具类
* @author 技匠
* @date 2023-02-14 13:16:22
*/
public class LocalIpUtil {
private static String Ipv4;
private static Long lastRefreshTime = -1L;
// 刷新间隔 2分钟
private static final Long REFRESH_TIME = 2 * 60 * 1000L;
private static void init() {
try {
if (lastRefreshTime + REFRESH_TIME > SystemClock.now() && StringUtils.isNotBlank(Ipv4)) {
return;
}
lastRefreshTime = SystemClock.now();
Ipv4 = InetAddress.getLocalHost().getHostAddress();
} catch (Exception ignored) {}
}
public static String getInet4Address() {
init();
return Ipv4;
}
}
import java.net.Inet4Address;
import java.net.Inet6Address;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.util.Enumeration;
/**
* 类描述:获取本机地址工具类
* @author 技匠
* @date 2023-02-14 13:16:22
*/
public class LocalIpUtil {
private static String Ipv4;
private static String Ipv6;
private static Long lastRefreshTime = -1L;
// 刷新间隔 2分钟
private static final Long refreshTime = 2 * 60 * 1000L;
private static void init() {
try {
if (lastRefreshTime + refreshTime > SystemClock.now() && StringUtils.isNotBlank(Ipv4) && StringUtils.isNotBlank(Ipv6)) {
return;
}
lastRefreshTime = SystemClock.now();
Enumeration<NetworkInterface> enumeration = NetworkInterface.getNetworkInterfaces();
while (enumeration.hasMoreElements()) {
NetworkInterface network = enumeration.nextElement();
if (network.isVirtual() || !network.isUp()) {
continue;
}
Enumeration<InetAddress> addresses = network.getInetAddresses();
while (addresses.hasMoreElements()) {
InetAddress address = addresses.nextElement();
if (!address.isLoopbackAddress() && address instanceof Inet4Address) {
// 非内网地址,并且是IPv4
Ipv4 = address.getHostAddress();
}
if (address.isLinkLocalAddress() && address instanceof Inet6Address) {
Ipv6 = address.getHostAddress();
}
}
}
} catch (Exception ignored) {}
}
public static String getInet6Address() {
init();
return Ipv6;
}
public static String getInet4Address() {
init();
return Ipv4;
}
}
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)