【发布时间】:2012-08-14 16:58:18
【问题描述】:
在使用 Java 的 InetAddress.getByName() 将主机解析为 IP 时,我想使用 Google 的 DNS 而不是本地系统的默认值。根据其他 stackoverflow 问题以及http://docs.oracle.com/javase/6/docs/technotes/guides/net/properties.html 提供的信息,我正在使用以下内容设置适当的属性:
System.setProperty("sun.net.spi.nameservice.nameservers", "8.8.8.8");
System.setProperty("sun.net.spi.nameservice.provider.1", "dns,sun");
稍后在程序中调用 System.getProperty("sun.net.spi.nameservice.nameservers") 确认该属性设置为 8.8.8.8 - 但是,网络流量清楚地显示所有 DNS 请求都发送到系统的默认值,而不是 Google 的 DNS。为了让 Java 使用请求的 DNS 服务器,还应该做些什么?
【问题讨论】:
-
尝试在
\Windows\System32\drivers 下的主机文件中设置 sun.net.spi.nameservice.nameservers 8.8.8.8 -
这是在 Linux 机器 (Ubuntu) 上运行,而不是 Windows