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

cor*_*ner 13 java dns resolve

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

InetAddress address = InetAddress.getByName("www.example.com");
Run Code Online (Sandbox Code Playgroud)

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

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

Loš*_*oša 15

如果您使用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");
Run Code Online (Sandbox Code Playgroud)

请参阅此博客文章:如何使用Java System属性设置自定义DNS服务器以获取更多详细信息.

  • 对于Oracle jdk 8也不起作用 (2认同)