getRemoteAddrでIPv4とIPv6

getRemoteAddrでIPv4とIPv6

記事一覧getRemoteAddrで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ドキュメント

参考カテゴリ

エンジニア記事一覧

最新の投稿やよく見られているのオススメ記事一覧です。