17

在 Java 中使用InetAddress类将主机名解析为 IP 地址相当容易,如下所示:

InetAddress address = InetAddress.getByName("www.example.com");

但是这种方法使用的是运行系统使用的 DNS 服务器。

有没有办法指定应该用于解析的 DNS 服务器?

4

1 回答 1

17

如果您使用 Sun Java,则可以使用以下代码:

//Override system DNS setting with Google free DNS server
System.setProperty("sun.net.spi.nameservice.nameservers", "8.8.8.8");
System.setProperty("sun.net.spi.nameservice.provider.1", "dns,sun");

有关更多详细信息,请参阅此博客文章:如何使用 Java 系统属性设置自定义 DNS 服务器

于 2013-07-03T09:57:19.810 回答