2019独角兽企业重金招聘Python工程师标准>>>

1settings.py中 添加中间件:

'django.middleware.http.SetRemoteAddrFromForwardedFor'

如何没有 自己写这个中间件:

classSetRemoteAddrFromForwardedFor(object):defprocess_request(self,request):try:real_ip=request.META['HTTP_X_FORWARDED_FOR']exceptKeyError:passelse:#HTTP_X_FORWARDED_FOR can be a comma-separated list of IPs.#Take just the first one.real_ip=real_ip.split(",")[0]request.META['REMOTE_ADDR']=real_ip

引入中间件:

‘your_project.http.SetRemoteAddrFromForwardedFor’,

原因:

高流量的站点通常需要将Django部署在负载平衡proxy(参见第20章)之后。
这种方式将带来一些复杂性,其一就是每个request中的远程IP地址(request.META["REMOTE_IP"])将指向该负载平衡proxy,
而不是发起这个request的实际IP。
负载平衡proxy处理这个问题的方法在特殊的 X-Forwarded-For 中设置实际发起请求的IP。
因此,需要一个中间件来确保运行在proxy之后的站点也能在request.META['REMOTE_ADDR']中得到正确的IP。

转载于:https://my.oschina.net/jamescasta/blog/1527335

django获取客户端真实IP相关推荐

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

    Java-Web获取客户端真实IP: 发生的场景:服务器端接收客户端请求的时候,一般需要进行签名验证,客户端IP限定等情况,在进行客户端IP限定的时候,需要首先获取该真实的IP. 一般分为两种情况: ...

  2. Java正确获取客户端真实IP方法整理

    转载自 干货:Java正确获取客户端真实IP方法整理 在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了Apach ...

  3. vue获取url中ip_Kubernetes 集群中这样获取客户端真实 IP

    Kubernetes 依靠 kube-proxy 组件实现 Service 的通信与负载均衡.在这个过程中,由于使用了 SNAT 对源地址进行了转换,导致 Pod 中的服务拿不到真实的客户端 IP 地 ...

  4. 获取客户端真实 IP

    Tomcat + Nginx 反向代理获取客户端真实IP.域名.协议.端口 Nginx 反向代理后,Servlet 应用通过 request.getRemoteAddr() 取到的 IP 是 Ngin ...

  5. 获取客户端真实ip的方法

    为什么需要获取客户端真实ip ip地址是按地域分布的,服务器获取到客户端ip后可以做流量统计和分析,服务器也可以针对客户端ip做一些定制化的功能,比如限流和黑白名单. 网络环境十分复杂,客户端发出的一 ...

  6. 获取客户端真实IP方法

    2019独角兽企业重金招聘Python工程师标准>>> 我们经常会记录审计日志,那么如何获取客户端真实IP呢?让我们了解一下HTTP协议头吧. 在讨论获取客户端IP 地址前,我们首先 ...

  7. 如何获取客户端真实 IP?从 Gin 的一个 Bug 说起

    1. 背景 请求 IP 作为用户的身份标识属性之一,是一种非常重要的基础数据.在很多场景下,我们会基于客户端请求 IP 去做网络安全攻击防范或访问风险控制.通常我们可以通过 HTTP 协议 Reque ...

  8. PHP获取客户端真实IP地址的方法

    php获取客户端IP地址有四种方法,这五种方法分别为 1 2 3 4 REMOTE_ADDR HTTP_CLIENT_IP HTTP_X_FORWARDED_FOR HTTP_VIA REMOTE_A ...

  9. asp.net如何获取客户端真实IP地址

    目前网上流行的所谓"取真实IP地址"的方法,都有bug,没有考虑到多层透明代理的情况. 多数代码类似: string IpAddress = (HttpContext.Curren ...

最新文章

  1. 先进机器人系统中的关键技术
  2. 求主析取范式与主合取范式
  3. 一个关于js所有函数都报错的问题
  4. 好程序员web前端分享函数作用域及递归
  5. Colaboratory:手把手教你使用Google免费的云端IDE进行深度学习(免费的GPU加速)的详细攻略
  6. 数据库开发——MySQL——基本操作
  7. leetcode66. 加一
  8. OWASP Top 10关键点记录
  9. rabbitmq消息确认机制及死信队列的使用
  10. 谷歌紧急修复已遭利用的新 0day
  11. 21天Jenkins打卡Day15项目复制
  12. git中fatal: Authentication failed的问题 git不能clone
  13. 【Win 10应用开发】分阶段进行数据绑定
  14. 虚拟助手之争,智能音箱能否挑战智能手机?
  15. Mosquitto PHP 插件安装使用及中文手册
  16. java jsp传值乱码_关于JSP乱码问题(页面传值产生的乱码)
  17. 【实地测试】新疆塔克拉玛干沙漠进行实地通信测试
  18. iOS制作微信(weChat)支付SDK过程
  19. GCKontrol与嵌入式系统:STM32实现电机控制案例
  20. 恢复出厂设置和格式化SD卡

热门文章

  1. 递归和函数栈与setjmp和longjmp的关系
  2. 列举5个python内置函数_Python5个内建高阶函数的使用
  3. 【 NLS 】Newton – Raphson Iteration Procedure of TOA - Based Positioning
  4. JavaScript的使用
  5. 使用AndroidStudio编译NDK的方法及错误解决方案
  6. 如何搭建自己的 pip 本地 cache
  7. 杨兴平离职完全是意料之中
  8. 详细讲解SQL Server索引的性能问题
  9. java 扩展类加载器_java实现自定义类加载器
  10. python 语料标注_在python中怎么标记文本?