Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在进行 API 调用,该调用需要请求 IP 地址。我正在使用 ServletRequest.getRemoteAddr() 来获取请求的 IP。对于一位用户,getRemoteAddr() 返回的是 IPv6 而不是 IPv4,这是为什么?
据我了解,IPv6 是对 IPv4 的扩展,用户可以选择使用 IPv6 而不是 IPv4。这是否意味着用户或用户的 ISP 正在使用 IPv6?这是如何工作的......还有一种方法可以获得 IPv4 等价物吗?
谢谢。
ipv6 不是 ipv4 的“扩展”,它是一种替代寻址方案。客户端是使用 ipv6 还是 ipv4 地址取决于客户端的配置(尽管客户端和服务器之间的中介需要兼容)。由于 ipv6 地址不向后兼容,因此无法获得与 ipv6 地址“等效”的 ipv4(但另一方面,有一种方法可以以与 ipv6 兼容的方式对 ipv4 地址进行编码)。