public class IpDetector {
public static String getIp() {
try {
Enumeration<NetworkInterface> em = NetworkInterface.getNetworkInterfaces();
for(;em.hasMoreElements();) {
NetworkInterface ni = em.nextElement();
String nicName = ni.getName();
if (nicName.startsWith("virbr")
|| nicName.startsWith("vboxnet")
|| nicName.startsWith("docker")
) {
continue;
}
Enumeration<InetAddress> emAddr = ni.getInetAddresses();
for(;emAddr.hasMoreElements();) {
InetAddress addr = emAddr.nextElement();
if (addr instanceof Inet4Address) {
String addrStr = addr.getHostAddress();
if (addrStr.startsWith("127.")) {
continue;
}
// System.out.println("Address is "+addr.getHostAddress());
return addrStr;
}
}
System.out.println();
}
} catch (SocketException e) {
e.printStackTrace();
}
return null;
}
public static void main(String[] args) {
String ip = getIp();
System.out.println("IP is "+ip);
}
}
Java 获取一个机器的本地地址
最新推荐文章于 2022-10-07 12:25:53 发布
本文介绍了一个简单的Java程序,该程序能够遍历系统的网络接口并获取有效的IPv4地址。程序排除了虚拟网卡和回环地址,确保返回的是实际可用的本地IP。

1万+

被折叠的 条评论
为什么被折叠?



