选择DNS服务器以在Java中解析主机名

通过使用InetAddress类,在Java中将主机名解析为IP地址相当容易:

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

但是此方法使用正在运行的系统使用的DNS服务器。

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

如果您使用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 System属性设置自定义DNS服务器以获取更多详细信息。