ServletRequest.getRemoteAddr何时返回IPv6

时间:2012-07-09 17:00:10

标签: java servlets ip ipv6

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

据我了解,IPv6是IPv4的扩展,用户可以选择使用IPv6 而不是IPv4。这是否意味着用户或用户的ISP正在使用IPv6?这是如何运作的.... 还有办法让IPv4等价吗?

感谢。

1 个答案:

答案 0 :(得分:3)

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