我正在进行API调用,该调用需要请求IP地址。 我正在使用ServletRequest.getRemoteAddr()来获取请求的IP。 对于一个用户,getRemoteAddr()返回IPv6而不是IPv4,为什么会这样?
据我了解,IPv6是IPv4的扩展,用户可以选择使用IPv6 而不是IPv4。这是否意味着用户或用户的ISP正在使用IPv6?这是如何运作的.... 还有办法让IPv4等价吗?
感谢。
答案 0 :(得分:3)
ipv6不是ipv4的“扩展”,它是另一种寻址方案。客户端是使用ipv6还是ipv4地址取决于客户端的配置(尽管客户端和服务器之间的中介需要兼容)。因为ipv6地址不向后兼容,所以无法获得ipv4“等效”的ipv6地址(但另一方面, 是一种以ipv6兼容的方式编码ipv4地址的方法)。