getRemoteAddr とgetRemoteHostの違いについてです
getRemoteAddr とgetRemoteHostの違い
結論から言うと、
getRemoteAddr はクライアントのIPアドレスを取得するメソッドで、
getRemoteHost はクライアントのホスト名を取得するメソッドです。
両方ともクライアントのIPアドレスが取得され、何が違うのかわからない時がありますが
getRemoteHostはIPからホスト名を逆引きしてホスト名を取得し、
逆引きできない時はIPアドレスを返すのでIPアドレスが取得されます。
そのため、getRemoteHostでもIPアドレスが返る場合があります。
request.getRemoteAddr() | クライアントのIPアドレスを取得する |
---|---|
request.getRemoteHost() | クライアントのホスト名を取得する (ホスト名が取得できない場合はIPアドレスを返す) |
一つ注意点があり、getRemoteHostでホスト名を取得したい場合はserver.xmlの
ConnectorにenableLookups="true"を指定しておく必要があります。
例)server.xmlにenableLookups="true"を指定した例
1 2 3 |
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" enableLookups="true" /> |