在使用 JavaInetAddress.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 服务器,还应该做些什么?