2016-10-13 4 views
1

그러나Inet6Address.getByName()에 대한 이상한 반응을주고 0 : 0 : 0 : 0 : 0 : FFFF : 0 : 나는 IPv6의 IP 주소를 정상화하려면 다음 코드를 사용하고 0

try { 
    return Inet6Address.getByName(ipAddress).getHostAddress(); 
} catch (final UnknownHostException e) { 
    return ipAddress; 
} 

을, IP를 "0 : 0 : 0 : 0 : 0 : ffff : 0 : 0"으로 사용하면 응답이 "0.0.0.0"이됩니다. 나는 다른 옥텟의 각 "FFFF"이 코드를 시도, 그들은 괜찮을 것 같다 : 특히이 IP는 IPv6의 형식을 반환하지 않을 이유에

ffff:0:0:0:0:0:0:0 
0:ffff:0:0:0:0:0:0 
0:0:ffff:0:0:0:0:0 
0:0:0:ffff:0:0:0:0 
0:0:0:0:ffff:0:0:0 
0.0.0.0 
0:0:0:0:0:0:ffff:0 
0:0:0:0:0:0:0:ffff 

어떤 생각?

답변

7

getHostAddress()은 (올바르게) IPv4-mapped IPv6 address을 표시합니다.

+0

건배, 그것이 표준의 일부인지도 몰랐습니다. – zodac