java - ServletRequest.getRemoteAddr 什么时候返回 IPv6

标签 java servlets ip ipv6

我正在进行 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/

相关文章:

java - 提交后是否禁止 begin() 同一事务(事务重用)?

java - 使用 LDAP/Java 启用 Active Directory 用户

java - 持久登录 cookie,避免垃圾邮件,并使用 yahoo facebook id

C# 如何知道子网是否是更大网络的一部分

java - 在 Play (Scala) 中使用 Guice 注释

java - 从 SNMP4j 陷阱接收器获取目标 IP 地址

java - 将 servlet 移动到 jar 文件以用作库

java - 在 Hibernate 中处理竞争条件

php - 将IP存入mysql数据库

nginx - 将 Nginx 修补到 ip_hash 4 个八位字节而不是 3 个