当前位置: 首页 > 面试题库 >

为什么request.getRemoteAddr()根据上下文返回ipv4或ipv6(后查询或Ajax查询)

锺离昂然
2023-03-14
问题内容

我没有使用Spring / GWT的网络应用程序,该应用程序使用Flash上​​传文件。

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

但是当我使用Flash上​​传文件(以及在同一Web应用程序上的发布请求)时,我得到了一个ipv6地址0:0:0:0:0:0:0:0:1

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

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

问题是我使用了一个签名,该签名使用ip地址来确保用户可以上传文件(由于使用Flash进行上传时会话丢失的错误),并且当我使用Ajax或通过Flash发布时,ip地址会更改。

有什么问题,如何获得相同的ip格式

谢谢


问题答案:

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

-Djava.net.preferIPv4Stack=true


 类似资料:
  • 我有以下表格结构: 1-课程(course_id、course_nam、语言、course_price、create_date、average_rating、course_description、certifica_price、course_creator_id) 2-学生(学生证、钱包) 3-折扣(折扣id、折扣课程id、允许的许可课程id、开始日期、结束日期、百分比) 4-报名(student

  • 补充: temp是别名,我截图截错了; plan_start_time 是varchar类型 SELECT STR_TO_DATE(plan_start_time, '%h:%i:%s') as temp ,plan_start_time from base_stop_calendar

  • 问题内容: 今天,我写了一个查询,应该返回一个错误。而是返回带有列名和数据类型的值15 。你知道为什么吗? 结果: 问题答案: 您要指定一个常量: 货币常量表示为数字字符串,带有可选的小数点 和可选的货币符号作为前缀 因此moneyselect $15select ¥15`。 正如Jeroen在评论中指出的那样: 因为日元符号(楼)是货币指示器,并且在某些日语本机字符集中,其代码点与ASCII中的

  • 问题内容: 快速版本 基本上,我正在更新hibernate表,后续查询正在加载陈旧的值。 详细版本 hibernate(3.3.1.GA)和EhCache(2.4.2)。 包含页面的持久对象,我将页面添加到本书的中间。我正在使用Databinder / Wicket,尽管我认为这并不相关。 适用的字段/方法是: 最终结果是,有一个新页面添加到列表中,并且数据库也进行了相应更新,我已经在我的数据存储

  • 我使用的是Lucene 4.7.2版本。 我已经索引了一些信息,并创建了一个UI以在该界面上查询。我根据用户输入创建了一个BooleanQuery,

  • 我有一个html下拉列表(它的纯html)。我需要有根据查询结果选择的值。像这样: 所以如果某个用户的查询返回状态为“CT”,我需要在下拉列表中选择的值为CT,除了检查每一行的if语句之外,还有什么方法可以做到这一点吗?