簡體   English   中英

dnsjava無法在Linux機器上解析“ localhost”

[英]dnsjava can't resolve “localhost” on Linux machine

dnsjava注冊為默認Java DNS提供程序后,出現問題。 它無法解析我的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會在默認庫中導致許多錯誤,這在很大程度上取決於本地主機解析能力。 因此,問題是:如何更改dnsjava的行為來解析本地主機名?

編輯。 下一個代碼工作正常:

java.net.InetAddress.getByName("localhost");

但是java.net.InetAddress.getLocalHost()方法拋出:

java.net.UnknownHostException: servername

dnsjava是DNS客戶端庫; 它與DNS服務器通信。 /etc/hosts不是DNS協議的一部分, dnsjava也不知道。

請參閱dnsjava用戶郵件列表上的原始帖子,該帖子來自撰寫此郵件的人: http : //old.nabble.com/DNS-Resolve-from-hosts-file-first-then-DNS-Server-td15431381.html

在這方面沒有任何改變。

如果java.net.InetAddress.getByName()正在運行,則將您的DNS服務器配置為響應對localhost查詢。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM