gpt4 book ai didi

java - 为什么 request.getRemoteAddr() 根据上下文返回 ipv4 或 ipv6(post 查询或 ajax 查询)

转载 作者:IT老高 更新时间:2023-10-28 13:47:53 34 4
gpt4 key购买 nike

我用 Spring/GWT 制作了一个使用 Flash 上传文件的网络应用程序。

当我使用 GWT 发送 ajax 请求并尝试获取用户 ip 地址时,我得到一个 ipv4 地址,例如:127.0.0.1

但是当我使用 flash 上传文件时(以及在同一个 webapp 上的发布请求),我得到一个 ipv6 地址 0:0:0:0:0:0:0:1

我使用相同的代码来获取用户 ip,即:

ServletRequestAttributes att = (ServletRequestAttributes) RequestContextHolder.currentRequestAttributes();
att.getRequest().getRemoteAddr();

问题是我使用了一个使用 ip 地址的签名来确保用户可以上传文件(由于使用 flash 上传时 session 丢失的错误),并且当我使用 ajax 或通过 flash 发布时,ip 地址会发生变化。

什么问题,我怎样才能得到相同的ip格式?

谢谢

最佳答案

您可以通过使用此标志启动服务器来修复它

-Djava.net.preferIPv4Stack=true

关于java - 为什么 request.getRemoteAddr() 根据上下文返回 ipv4 或 ipv6(post 查询或 ajax 查询),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3118829/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com