获取真实IP地址问题
2017-11-08 13:32:46
杨桢
  • 访问次数: 59
  • 注册日期: 2017-06-29
  • 最后登录: 2017-11-09
  • 我的积分: 2580
  • 门派等级: 释迦 等级3 比丘

然之在helper.class.php文件中有一个获取客户端真实IP的函数,且在签到等地方引用了这个公共函数。但是这个函数存在一个缺陷。源码如下图:

这里第二个if是在存在代理IP时适用的,如果存在X_FORWARDED_FOR,则其记录了代理过程中的所有路由ip,但是这里可能不止一个代理跳转,而且然之这个字段是有长度限制的。因此,在比如用微信内置浏览器查看网页时(必定会存在多次代理),这里会报ip长度过大的错误。我想这里程序员可能想得到的是第一个ip,也就是真实的初始ip,因此需要考虑是否有多个ip代理过程。函数修改方法如下:

100
沙发
2017-11-08 16:39:19
石洋洋
  • 访问次数: 1013
  • 注册日期: 2015-12-11
  • 最后登录: 2023-08-09
  • 我的积分: 2810
  • 门派等级: 无门派
谢谢反馈。
1/1