java - 在java中获取默认网关

标签 java networking dns ip gateway

我想使用 java 获取本地机器的默认网关。我知道如何通过执行dos或shell命令来获取它,但是还有其他方法可以获取吗? 还需要获取主次dns ip。

最佳答案

My way是:

try(DatagramSocket s=new DatagramSocket())
{
    s.connect(InetAddress.getByAddress(new byte[]{1,1,1,1}), 0);
    return NetworkInterface.getByInetAddress(s.getLocalAddress()).getHardwareAddress();
}

由于使用数据报 (UDP),它不连接任何地方,因此端口号可能没有意义,远程地址 (1.1.1.1) 不需要可达,只需可路由即可。

关于java - 在java中获取默认网关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5945288/

相关文章:

python - Twisted如何读取/etc/hosts?

python - 如何使用 python 获取设备的主机名、别名、IP 地址和规范名称(不要求库读取/etc/hosts)?

java - 我的函数中出现意外输出

java - 关闭 apache CloseableHttpConnection 并正确处理关闭异常

java - Android SQLite3 强制主键问题

python - 在 python 上查找 Windows 和 Linux 的默认网关地址

macos - 无法从Mac OS ping到XP

android - 3G 连接设备和 WiFi PC 之间的 UDP

docker - 默认桥接网络上的docker嵌入式dns

Java 生成彩虹色 - 怎么样?