getRemoteAddrでIPv4とIPv6

getRemoteAddrでIPv4とIPv6

JavagetRemoteAddrでIPv4とIPv6

Java の HttpServletRequest#getRemoteAddr() で、リモートの IP アドレスが取得できるのですが、クライアントの OS 環境によってはIPv6 のアドレスが返されます。ループバックアドレスを例にすると下記のような違いです。

[IPv4]
127.0.0.1

[IPv6]
0:0:0:0:0:0:0:1

Tomcat 環境では IPv6 のアドレスを優先的に返すので、これを IPv4 のアドレスを優先にするには Java 起動時のオプションに下記を追加します。

-Djava.net.preferIPv4Stack=true

Linux だと catalina.sh、Windows だと catalina.bat に記述しておくといいのでしょうか。

ドキュメント] ※JDK1.5ドキュメント

最終更新日:

関連記事

人気記事

新着情報