手机版 收藏 导航

Java 如何获取默认网关 IP 地址_Java 如何获取多网卡环境下的 IP 地址

原创   www.link114.cn   2024-09-15 19:05:30

Java 如何获取默认网关 IP 地址_Java 如何获取多网卡环境下的 IP 地址

要获取默认网关 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 地址
            }
        }
    }
}