2013-02-13 23 views
6

プライベートネットワーク上のサーバーには、同じネットワークのPCが接続するHttpServletがあります。この場合、getRemoteHostメソッドはホスト名の代わりにIPアドレスを返しますか?

サーバーに接続するクライアントのホスト名を知る必要があります。これを行うには、HttpServletRequestの getRemoteHostメソッドを呼び出します。

このメソッドはクライアントのPC名を返すことがあります(動作が望まれます)。また、他のメソッドはIPアドレスを返します。 (同じクライアント、同じサーバ、同じプライベートネットワーク)

APIは言う:

java.lang.StringでgetRemoteHostを()

は、クライアントまたは最後の完全修飾名を返します。リクエストを送信したプロキシエンジンがパフォーマンスを向上させるためにホスト名を解決できない、またはホスト名を解決しないことを選択した場合、このメソッドはIPアドレスのドット文字列形式を返します。 CGI変数の値 REMOTE_HOSTと同じHTTPサーブレットの場合

戻り

私はHTTPサーブレットのための値であることことがわかり、クライアントの完全修飾名を含むString CGI変数REMOTE_HOSTと同じです。どういう意味ですか?アドレスを解決するかどうかはサーバーに決まりますか?この動作を強制する方法はありますか?

+1

サーバは、逆引き参照を行う必要があるホスト名を取得するために、IPアドレスのみを知っています。 FQDNを取得する場合は、いつでも手動で行うことができます –

答えて

3

たとえば、Tomcatでは、パフォーマンス上の理由から、コネクタにはデフォルトで「enableLookups」という設定が無効になっています。 http://tomcat.apache.org/tomcat-7.0-doc/config/http.html

他の容器には同じことをする方法が異なる場合があります。

関連する問題