Inet6Address.getByName() 对 0:0:0:0:0:ffff:0:0 给出奇怪的响应

Inet6Address.getByName() giving odd response for 0:0:0:0:0:ffff:0:0

我正在使用以下代码规范化 IPv6 IP 地址:

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" 在每个其他八位字节中尝试了这段代码,它们似乎没问题:

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

有没有想过为什么这个 IP 不是 return IPv6 格式?

getHostAddress() 正在(正确地)显示 IPv4-mapped IPv6 address