Jer*_*nce 23 java spring ipv4 ipv6 java-ee
我已经使用Spring/GWT使用Flash上传文件.
当我用GWT发送ajax请求并尝试获取用户的ip地址时,我得到一个ipv4地址,如:127.0.0.1
但是当我用flash上传我的文件时(以及在同一个webapp上的post请求)我得到一个ipv6地址0:0:0:0:0:0:0:1
我使用相同的代码来获取用户ip,即:
ServletRequestAttributes att = (ServletRequestAttributes) RequestContextHolder.currentRequestAttributes();
att.getRequest().getRemoteAddr();
Run Code Online (Sandbox Code Playgroud)
问题是我使用一个使用ip地址的签名来确保用户可以上传文件(由于使用flash上传时会话丢失的错误)以及当我使用ajax或Post via flash时ip地址发生变化.
有什么问题,我怎么能得到相同的IP格式?
谢谢
Ted*_*ham 46
您可以通过使用此标志启动服务器来修复它
-Djava.net.preferIPv4Stack=true
Run Code Online (Sandbox Code Playgroud)
unb*_*eli 12
原因是您在浏览器中键入的名称同时包含ipv4和ipv6地址.浏览器选择使用ipv4,flash选择使用ipv6.在服务器端没有什么可以做的(没有办法转换).
但是,您可以更改DNS并使您的名称只有一个地址,ipv4或ipv6.您还可以使用文字IP地址(127.0.0.1)连接,而不是名称(localhost).
| 归档时间: |
|
| 查看次数: |
31437 次 |
| 最近记录: |