我正在进行 API 调用,该调用需要请求 IP 地址。 我正在使用 ServletRequest.getRemoteAddr() 来获取请求的 IP。 对于一位用户,getRemoteAddr() 返回的是 IPv6 而不是 IPv4,这是为什么??
据我了解,IPv6是对IPv4的扩展,用户可以选择使用IPv6 而不是 IPv4。这是否意味着用户或用户的 ISP 正在使用 IPv6?这是如何运作的.... 还有没有办法获得等效的 IPv4?
谢谢。
最佳答案
ipv6 不是 ipv4 的“扩展”,它是另一种寻址方案。客户端是使用 ipv6 还是 ipv4 地址取决于客户端的配置(尽管客户端和服务器之间的中介需要兼容)。没有办法让 ipv4“等同于”ipv6 地址,因为 ipv6 地址不向后兼容(但另一方面,是以 ipv6 兼容的方式编码 ipv4 地址的方法).
关于java - ServletRequest.getRemoteAddr 什么时候返回 IPv6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11399729/