5

ホスト名を対応するIPに解決しようとしています。

私の環境は、プロキシサーバーの背後にある企業ネットワーク内のMacであり、システム環境設定(自動プロキシ設定)を介して.pacファイルで設定されています。これまでのところ、すべてが正常に機能しており、企業ネットワークの内外のリソースにアクセスできます。

ネットワーク内のホストの解決は完全に正常に機能します。 InetAddress.getByName("host.local");

しかし、外部ホスト名を使用すると、UnknownHostExceptionが発生します。 InetAddress.getByName("google.com");

を生成します

Exception in thread "main" java.net.UnknownHostException: google.com
    at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
    at java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:850)
    at java.net.InetAddress.getAddressFromNameService(InetAddress.java:1201)
    at java.net.InetAddress.getAllByName0(InetAddress.java:1154)
    at java.net.InetAddress.getAllByName(InetAddress.java:1084)
    at java.net.InetAddress.getAllByName(InetAddress.java:1020)
    at java.net.InetAddress.getByName(InetAddress.java:970)
    at Test.main(Test.java:67)

(ここで少し驚いていInet6AddressImplます)

私が理解している限り、ホスト名を解決するためにネイティブメカニズムを使用するInetAddress.getByNameです。したがって、このエラーの原因は、Javajvm内のプロキシ構成が欠落していることではないと思います。

しかし、他のすべてが正常に機能している場合、他に何ができるでしょうか?

いくつかの(多分)有用な追加情報:

  • 私はMacBookを使用してifconfigおり、ネットワークに接続されたインターフェイスlo0、gif0、stf0、en0、fw0、en1->をipv4アドレスで表示しています。

  • nslookup google.comコンソールで戻る** server can't find google.com: NXDOMAIN

  • ネットワーク内のWindowsマシン上の同じコードで、同じ例外が発生しました

このエラーの原因について何か考えはありますか?または、Javaでホスト名を解決する他の方法はありますか?

4

3 に答える 3

5

企業のDNSサーバーは、Interentドメインを解決できないようにします(企業以外のコンテキストを閲覧する人を望まない可能性があります)。

nslookupこれは、クエリが失敗するという事実によってサポートされています。

会社の方針に投票権がなく、開発マシンを会社の敷地内に置いておく必要がある場合、できることは何もありません。

于 2011-08-02T11:59:54.287 に答える
0

この投稿で述べたように、Sun-JVMのみの設定でカスタムDNSを設定できます。これと同じ解決の問題がありましたが、プロキシをDNSサーバーとして設定することで、プロキシにルックアップを明示的に要求することができました。YMMV

System.setProperty("sun.net.spi.nameservice.nameservers", "<my-proxy-ip>");
System.setProperty("sun.net.spi.nameservice.provider.1", "dns,sun");
于 2012-04-09T23:33:39.463 に答える
0

この質問が更新されたことは知っていますが、これはGoogleで上位にリストされている結果であるため、人々をつまずかせる可能性のあるこの有用な情報を追加したいと思いました。

この方法を使用するときは、次の点に注意してください。

http://www.google.com -- DOES NOT WORK
google.com -- WORKS!
于 2018-04-17T12:57:44.347 に答える