用户访问web server时,可能会经过多层proxy server,此时获取用户IP的方法:

1、用户访问链经过CDN:统一配置xxf模式,CDN_SRC_IP存在,用户IP即为第一个IP:{用户IP,proxy server1 IP,proxy server2 IP....}

2、不经过CDN:统一配置XXF模式,如果XXF只存在一个IP,即为用户IP;如果存在多个IP,XXF形式为:{ proxy server IP.....,用户IP }或者{proxy server IP.....,用户IP,rpoxy server IP}

3、不存在XXF:用户ip为remote_addr

可以通过Firefox浏览器的firebug插件查看相应的用户访问一个服务所经过的链路:如下图所示

Via——当客户端请求到达第一个代理服务器时,该服务器会在自己发出的请求里面添加 Via 头部,并填上自己的相关信息,当下一个代理服务器 收到第一个代理服务器的请求时,会在自己发出的请求里面复制前一个代理服务器的请求的Via 头部,并把自己的相关信息加到后面, 以此类推,当 OCS 收到最后一个代理服务器的请求时,检查 Via 头部,就知道该请求所经过的路由。

通过Firefox modify headers模拟XXF链路访问nginx主机,可以通过nginx日志看到记录的XXF形式:

后续待问题:通过Firefox modify header可以用假IP向服务器发送请求,如何阻挡伪IP?

X_Forward_For(XXF)获取用户IP相关推荐

  1. go 通过nginx代理后获取用户ip

    go 如果使用自己的服务器,可以直接使用 net/http 来获取 func ip(w http.ResponseWriter, r *http.Request) {fmt.Println(r.Rem ...

  2. 获取用户Ip地址通用方法常见安全隐患 x-forwarded-for

    分析过程 这个来自一些项目中,获取用户Ip,进行用户操作行为的记录,是常见并且经常使用的. 一般朋友,都会看到如下通用获取IP地址方法. function getIP() { if (isset($_ ...

  3. 第三方免费开放API 获取用户IP 并查询其地理位置

    需求:有一个项目是微信公众号,属于汽车服务.当车主在填写车主资料或者车辆认证时,需要填写车牌号或者车架号:车牌号需要选择省,为了方便用户操作,所以想自动定位默认省,如下图: 我查询了一些博客,找到了一 ...

  4. 【用jQuery来判断浏览器的类型】及【javascript获取用户ip地址】

    用jQuery来判断浏览器的类型,主要是使用$.browser这个工具类,使用方法: $.browser.['浏览器关键字'] //谷歌浏览器.360浏览器等其他一些浏览器,没有专门的判断 funct ...

  5. php与ie通信,php 获取用户IP与IE信息程序

    php 获取用户IP与IE信息程序 function onlineip() { global $_SERVER; if(getenv('HTTP_CLIENT_IP')) { $onlineip = ...

  6. php获取表单ip,PHP获取用户IP代码实现

    PHP获取用户IP代码实现 获取客户端用户IP在网站中经常会需要,譬如: 1.登陆IP:可以及时知道自己的账号是不是被盗用: 2.投票:可以针对每个IP只能做一次投票防止刷票: 3.统计:统计用户来源 ...

  7. linux如何添加360网站卫士ip,使用加速乐、360网站卫士PHP无法获取用户IP的解决方法...

    04 五月 分类:网站技术 | 评论数:0 | 点击数:2043 | 发表日期时间:2015-05-04 23:40:34 分享到: 本文导读:使用加速乐或者360网站卫士后,虽然可以保护真实服务器I ...

  8. 使用淘宝IP库获取用户ip地理位置

    为什么80%的码农都做不了架构师?>>>    以前用过GOOGLE地图和百度地图获取过用户地理位置,现在又多了一个方法,那就是使用淘宝IP库获取用户ip地理位置,一起来看代码吧. ...

  9. 花生壳代理(PHP)无法获取用户ip

    1.问题描述 因为需要,所以用花生壳搭建了一个网站,但是获取到的都是本机地址(其它电脑访问网站得到的也是127.0.0.1),很正常,毕竟不是云主机.但让人气愤的是花生壳官方没有给出解决方案,无语. ...

最新文章

  1. 解决Pycharm中SystemError报错
  2. redis必杀高级:性能测试
  3. js实现撤销恢复_我们常用的撤销和恢复功能,它们使用了什么设计模式实现吗?...
  4. Spring MVC之异常处理
  5. 科大星云诗社动态20210226
  6. URI结构和ABNF操作符
  7. 身份令牌toKen Vuex + localStorage结合存储
  8. MySql - GROUP BY 和 HAVING关键字
  9. 在VMware中装Win server 2012配置Hyper-v
  10. C语言中#define中的一些特殊用法
  11. 2.2 流程控制-for序列 2.3 流程控制-for字典 2.4 循环退出 2.5 流程控制-while
  12. java的科学记数法_java – 为什么输出是科学记数法?
  13. 二进制、十进制和16进制对照表以及对应的字符
  14. PingCAP,中国第一只开源独角兽总融资达3.4亿美元,不能错过的开源深度解析
  15. workerman php使用,workerman怎么用
  16. 华东师大计算机专业非全日制,2018年华东师范大学非全日制研究生专业目录
  17. Android自定义圆角矩形图片ImageView
  18. sencha app watch php,使用新的SenchaCmd4命令appwatch
  19. 表格方式:(表格用法,表格跨行和跨列)
  20. U盘启动晨枫U盘维护工具V2.0版

热门文章

  1. 20220715_JaveWeb_MVC模式_三层架构案例
  2. PCBA老化测试是什么,老化测试标准是什么?
  3. 编辑距离算法之Jaro-Winkler Distance
  4. grid布局之容器属性justify-content与align-content
  5. The Fundamentals of Commodity Futures Returns(Gary B. Gorton,Fumio Hayashi,K. Geert Rouwenhorst)
  6. TZ环境变量,时区,夏令时
  7. 爬虫、网页分析解析辅助工具 Xpath-helper
  8. 声纳--成像声呐目标检测与跟踪技术研究 ---15年,哈工程,博士毕业论文
  9. Android与Linux的区别
  10. 鸿水点评:春晚四小花旦