为什么80%的码农都做不了架构师?>>>   

现在需要获取请求到服务器的客户端 IP,一般有这些方式。

  • remote_addr:TCP 底层的会话 IP 地址,socket 连接的 IP 地址,不可伪造。但经过 Nginx 代理时会重置为 Nginx 的 IP,因为 Nginx 重新发起了和服务器的 TCP 连接。
  • X-Real-IP:Nginx 中可以配置,将上一级的 remote_addr 设置为 X-Real-IP。
  • X-Forwarded-For:记录完整的代理链路,可以伪造。

可以看出为了兼容有 Nginx 代理的场景,使用 X-Forwarded-For 方式是做好的。这种方式也需要在 Nginx 中进行配置。

Nginx 配置

proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

参考

从限流谈到伪造 IP

获取用户 IP 指引

获取用户 IP 的正确姿势

Nginx 四层、七层负载均衡的区别

ip-transparency-direct-server-return-nginx-plus-transparent-proxy

转载于:https://my.oschina.net/lvyi/blog/3045507

获取客户端用户真实 IP 地址相关推荐

  1. JavaWeb 获取客户端的真实IP地址

    通常我们在JavaWeb中获取客户端IP地址只需要使用request.getRemoteAddr();方法即可 如果前端使用了Nginx等反向代理的话,我们使用request.getRemoteAdd ...

  2. Java如何获取客户端主机真实IP地址

    项目开发中,小编遇到一种需求,就是将系统项目与某台主机的IP地址绑定,让该系统只能在某台主机上使用,不要问小编为什么,我也是第一次遇到这么奇怪的需求,当然也不要问小编为什么不使用权限控制,现在的权限控 ...

  3. Java获取请求客户端的真实IP地址

    整理网友的材料,最后有源码,亲测能解决所有java获取IP真实地址的问题 整理的这里: 1.链接1 2.链接2 JSP里,获取客户端的IP地址的方法是: request.getRemoteAddr() ...

  4. 多级反向代理下,Java获取请求客户端的真实IP地址多中方法整合

    在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实I ...

  5. 穿透代理获取用户真实IP地址

    文章目录 一.场景 二.方法 1.微信官方方法 (1)没有代理 (2)有代理 2.非官方方法 (1)代码 (2)说明 (3)补充 一.场景 在对接微信H5支付API时,有一关键步骤是获取到用户的真实I ...

  6. PHP获取用户真实IP地址

    PHP获取用户真实IP地址 <?phpfunction getRealIpAddr() { if (!empty($_SERVER['HTTP_CLIENT_IP'])) { $ip=$_SER ...

  7. java获取用户真实IP地址

    /*** 获取用户真实IP地址,不使用request.getRemoteAddr();的原因是有可能用户使用了代理软件方式避免真实IP地址.* 可是,如果通过了多级反向代理的话,X-Forwarded ...

  8. CDN下nginx获取用户真实IP地址

    为什么80%的码农都做不了架构师?>>>    随着nginx的迅速崛起,越来越多公司将apache更换成nginx. 同时也越来越多人使用nginx作为负载均衡, 并且代理前面可能 ...

  9. 如何获取客户端的真实IP

    原文地址:http://blog.csdn.net/zhangyaoming2004/article/details/6792695 问题引出: <hr/> 在JSP里,获取客户端的IP地 ...

  10. PHP获取客户端的真实IP

    REMOTE_ADDR只能获取访问者本地连接中设置的IP,如中南民族大学校园网中自己设置的10.X.XXX.XXX系列IP,而这个函数获取的是局域网网关出口的IP地址, 如果访问者使用代理服务器,将不 ...

最新文章

  1. 10万元奖金助力AI加速药物研发!小分子预测大赛来啦
  2. python拿来干嘛-python可以用来干什么?
  3. 14. Java基础之泛型
  4. 互联网项目中MySQL应该选什么事务隔离级别
  5. 制作U盘启动LINUX安装(Ubuntu12.04)
  6. win8 iis8 asp.net 图片访问需登录
  7. Java常见排序算法之直接选择排序
  8. php设计模式之桥接模式
  9. oracle语言的分类及其常见的系统函数
  10. CCF201703-5 引水入城(100分题解链接)
  11. photorec_如何在Linux / Ubuntu中使用PhotoRec恢复已删除的文件
  12. ECharts常用图表(柱状图)
  13. PLC 有哪几种常用编程语言
  14. 电视制式 NTSC PAL SECAM
  15. rclone 实现 GoogleDrive 同步至 OneDrive
  16. 移动用户体验设计:iOS APP体验设计
  17. 手机PIN、PUK码之谜
  18. html网页改兼容模型,让DIV+CSS兼容所有浏览器
  19. 阿里云备案要几天时间?
  20. java产生随机数的三种方式

热门文章

  1. java 骰子游戏_蓝桥杯-骰子游戏-java
  2. 通过函数指针实现四则运算
  3. No module named ‘wrapt‘
  4. 19范数理论及其应用
  5. github第一次使用--创建hello-world
  6. 2020 恒生电子 面经
  7. SRNTT:Image Super-Resolution by Neural Texture Transfer
  8. Logistic Regression分类器与softmax分类器
  9. MATLAB 数据显示格式
  10. java 转换成maven项目_java – 将现有项目转换为maven项目