getRemoteAddrでIPv4とIPv6
※実経験の記憶を頼りに自宅の PC 環境(VMWareなど)で再現している内容もあるのでご注意下さい
2007-12-21
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 に記述しておくといいのでしょうか。
関連記事
上記の記事に関連する記事(最新の10件)です。


