【发布时间】:2013-05-27 23:02:14
【问题描述】:
在我注册dnsjava as default Java DNS provider 后,我遇到了问题。它无法解析我的 Linux 机器上 /etc/hosts 文件中描述的本地地址。这个文件看起来像这样:
127.0.0.1 localhost
127.0.1.1 servername
因此,如果我尝试解决其中一个这样的名称,就会发生 UnknownHostException:
org.xbill.DNS.Address.getByName("localhost");
org.xbill.DNS.Address.getByName("servername");
当您将 dnsjava 与默认 dns 提供程序一起使用时,这不是问题。作为唯一的提供者,dnsjava 会在默认库中导致许多错误,结果证明这些错误高度依赖于 localhost 解析能力。那么问题来了:如何改变 dnsjava 的行为来解析本地主机名?
编辑。下一个代码可以正常工作:
java.net.InetAddress.getByName("localhost");
但是 java.net.InetAddress.getLocalHost() 方法抛出:
java.net.UnknownHostException: servername
【问题讨论】: