Java获取Linux本机IP地址(排除127.0.0.1)
Java获取Linux本机IP地址(排除127.0.0.1)
在Linux环境下,我们经常需要使用Java代码获取本机的IP地址,但要排除掉回环地址127.0.0.1。以下是一段示例代码,可以实现这个功能:
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Enumeration;
public class IPExample {
public static void main(String[] args) {
try {
Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
while (interfaces.hasMoreElements()) {
NetworkInterface iface = interfaces.nextElement();
if (iface.isLoopback() || !iface.isUp()) {
continue; // 排除回环接口和关闭的接口
}
Enumeration<InetAddress> addresses = iface.getInetAddresses();
while (addresses.hasMoreElements()) {
InetAddress addr = addresses.nextElement();
if (addr.isLoopbackAddress()) {
continue; // 排除回环地址
}
System.out.println('IP地址: ' + addr.getHostAddress());
}
}
} catch (SocketException e) {
e.printStackTrace();
}
}
}
代码解释:
- 使用
NetworkInterface.getNetworkInterfaces()获取所有网络接口。 - 遍历每个网络接口,使用
isLoopback()和isUp()方法判断接口是否为回环接口或是否已启动。 - 获取每个网络接口的IP地址列表,使用
getInetAddresses()方法。 - 遍历每个IP地址,使用
isLoopbackAddress()方法判断是否为回环地址,排除127.0.0.1。 - 最后,打印获取到的有效IP地址。
注意事项:
- 由于网络接口和IP地址的复杂性,实际情况可能因操作系统和网络配置而异。
- 建议在特定环境中测试此代码,并根据需要进行必要的调整。
原文地址: https://www.cveoy.top/t/topic/Q1R 著作权归作者所有。请勿转载和采集!