3

我正在进行 API 调用,该调用需要请求 IP 地址。我正在使用 ServletRequest.getRemoteAddr() 来获取请求的 IP。对于一位用户,getRemoteAddr() 返回的是 IPv6 而不是 IPv4,这是为什么?

据我了解,IPv6 是对 IPv4 的扩展,用户可以选择使用 IPv6 而不是 IPv4。这是否意味着用户或用户的 ISP 正在使用 IPv6?这是如何工作的......还有一种方法可以获得 IPv4 等价物吗?

谢谢。

4

1 回答 1

3

ipv6 不是 ipv4 的“扩展”,它是一种替代寻址方案。客户端是使用 ipv6 还是 ipv4 地址取决于客户端的配置(尽管客户端和服务器之间的中介需要兼容)。由于 ipv6 地址不向后兼容,因此无法获得与 ipv6 地址“等效”的 ipv4(但另一方面,有一种方法可以以与 ipv6 兼容的方式对 ipv4 地址进行编码)。

于 2012-07-09T17:27:28.550 回答