
要获取默认网关 IP 地址,可以使用 Java 的
NetworkInterface
类。获取所有可用的网络接口,遍历每个接口,检查其是否为默认网关。示例代码如下:
Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
while (interfaces.hasMoreElements()) {
NetworkInterface ni = interfaces.nextElement();
if (!ni.isLoopback() && ni.isUp()) {
for (InterfaceAddress ia : ni.getInterfaceAddresses()) {
InetAddress addr = ia.getAddress();
if (addr instanceof Inet4Address && !addr.isLoopbackAddress()) {
if (ni.isPointToPoint() || ni.isVirtual()) {
// 检查网关地址
}
}
}
}
}
在多网卡环境下,获取 IP 地址的方法与单网卡情况略有不同。可以使用
NetworkInterface
类获取所有可用的网络接口,遍历每个接口,获取其 IP 地址。示例代码如下:
Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
while (interfaces.hasMoreElements()) {
NetworkInterface ni = interfaces.nextElement();
if (!ni.isLoopback() && ni.isUp()) {
for (InterfaceAddress ia : ni.getInterfaceAddresses()) {
InetAddress addr = ia.getAddress();
if (addr instanceof Inet4Address && !addr.isLoopbackAddress()) {
// 获取 IP 地址
}
}
}
}