如何在Java中配置主机名解析以使用自定义DNS服务器?

默认情况下,java.net.InetAddress使用本地计算机的默认主机名解析器解析主机名:

主机名到IP地址的解析是通过结合使用本地计算机配置信息和网络命名服务(例如域名系统(DNS)和网络信息服务(NIS))来完成的。

使用的特定命名服务是

。对于任何主机名,将返回其相应的IP地址。[资源]

我们如何在不修改本地计算机的默认主机名解析器的情况下配置此行为?

例如,无论如何,都可以配置java.net.InetAddress,使其通过OpenDNS(208.67.222.222,208.67.220.220)或Google

Public DNS(2001:4860:4860 :: 8888,2001:4860:4860)解析主机名: :8844)?

还是唯一的显式创建DNS数据包请求,通过java.net.DatagramSocket或java.net.Socket将它们发送到服务器并解析响应的解决方案?

回答:

Java 9删除了此功能。您将需要使用第三方DNS客户端库。

如果您使用的是Java 8或更早版本,则可以执行以下操作:

您可以sun.net.spi.nameservice.nameservers按照该站点的说明设置系统属性。

以上是 如何在Java中配置主机名解析以使用自定义DNS服务器? 的全部内容, 来源链接: utcz.com/qa/413456.html

回到顶部