ホスト名を対応するIPに解決しようとしています。InetAddress.getByNameがプロキシの背後で失敗する
私の環境は、システム環境設定(自動プロキシ設定)を介して.pacファイルで設定されたプロキシサーバーの背後にある企業ネットワーク内のMacです。これまでのところすべてが正常に機能しており、社内ネットワークの内外にあるリソースにアクセスできます。 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はネイティブメカニズムを使用してホスト名を解決します。だから私は、エラーは、Javaのjvm内のプロキシ設定が不足していることによって引き起こされるとは思わない。
他のすべてがうまくいけば、他に何ができますか?
一部(たぶん)有用な追加情報:
私はMacBookの、
ifconfig
はlo0でインターフェースを示し、gif0、stf0、EN0、FW0、EN1使用しています - IPv4では、>ネットワークに接続します住所。コンソール上nslookup google.com
は同じ例外
このエラーの原因についての任意のアイデアを生み出し、ネットワーク内のWindowsマシン上** server can't find google.com: NXDOMAIN
同じコードを返しますか? また、javaのホスト名を解決する他の方法はありますか?
回答ありがとうございました。私はネットワーク専門家ではありませんが、企業ネットワーク内からgoogle.com(もちろんこのサイト)にアクセスできないというわけではありませんか? 私は、pacファイルがプロキシを使用するときと使用しないときのルールを定義していることを知っています。おそらく、jvmからの要求に対してpacを "実行"することに関連する問題でしょうか? – Benjamin
アレクサンダーは正しいです。トラフィックはプロキシに送信されることでGoogleに到達します。プロキシは、トラフィックをGoogle Webサーバーに送信する前にDNSルックアップ自体を行います。 – EricLaw
@ベンジャミン。企業のブラウザからgoogle.comにアクセスできる場合は、Javaプログラムのプロキシを設定する必要があります。この記事を読むにはヘルプ:http://download.oracle.com/javase/6/docs/technotes/guides/net/proxies.html –