HttpServletRequest#getRemoteAddr()とIPv6 その3

このサーブレットIE7から"http://localhost:8080/コンテキスト名/"のURLでアクセスすると、ログに出力されるアドレスはやはり"0:0:0:0:0:0:0:1"である。

Tomcatのソースを追ってみたところ、以下のように推移している

PoolTcpEndpoint.acceptSocket() 行: 407	
↓
DefaultServerSocketFactory.acceptSocket(ServerSocket) 行: 60	
↓
ServerSocket.accept() 行: 421	
↓
ServerSocket.implAccept(Socket) 行: 450	
↓
SocksSocketImpl(PlainSocketImpl).accept(SocketImpl) 行: 384	
↓
PlainSocketImpl.socketAccept(SocketImpl) 行: 使用不可 [ネイティブ・メソッド]	
↓
Inet6Address.() 行: 203 [ローカル変数は使用不可]	
↓
ここで、アドレスは"0:0:0:0:0:0:0:1"になっている

socketAcceptはネイティブメソッドだ。ということはやはりVistaのWinSock絡みかな。
IPv6 Guide for Windows Sockets Applications

あと、IPv6がらみの記事であれば、ザ・ケーブルガイシリーズがお勧めだ。
The Cable Guy – 2005 年 3 月 IPv6 のトラブルシューティング
The Cable Guy - February 2006 Source and Destination Address Selection for IPv6

くそ、なんでFebruary 2006の邦訳が無いんだ。

時間が無い&明日は外出なんで続きは週末かな。