gpt4 book ai didi

java - dnsjava 无法在 Linux 机器上解析 "localhost"

转载 作者:太空宇宙 更新时间:2023-11-04 11:23:00 24 4
gpt4 key购买 nike

我注册后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

最佳答案

dnsjava 是一个 DNS 客户端库;它与 DNS 服务器对话。 /etc/hosts 不是 DNS 协议(protocol)的一部分,dnsjava 也不知道有关它的任何信息。

请参阅 dnsjava 用户邮件列表中的这篇旧帖子,作者是它:http://old.nabble.com/DNS-Resolve-from-hosts-file-first-then-DNS-Server-td15431381.html

在这方面没有任何改变。

如果 java.net.InetAddress.getByName() 正常工作,则您的 DNS 服务器已配置为响应对 localhost 的查询。

关于java - dnsjava 无法在 Linux 机器上解析 "localhost",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16775520/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com