文档章节

django获取客户端真实IP

猿神出窍
 猿神出窍
发布于 2017/09/01 09:44
字数 235
阅读 274
收藏 0

  1settings.py中 添加中间件:

'django.middleware.http.SetRemoteAddrFromForwardedFor'

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

classSetRemoteAddrFromForwardedFor(object):

defprocess_request(self,
 request):

   try:

       real_ip=request.META['HTTP_X_FORWARDED_FOR']

   exceptKeyError:

       pass

   else:

       #
 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。

 

© 著作权归作者所有

猿神出窍
粉丝 18
博文 192
码字总数 71238
作品 0
沙坪坝
项目经理
私信 提问
微信小程序通过ip获取用户所在城市

在微信小程序中, 获取用户的地理位置是需要权限的, 如果只是获取用户所在的城市信息, 那只需查看用户ip所在的城市就好了, 下面我们就完成获取用户ip的小程序逻辑~ 根据用户ip获取地理位置 根...

木子昭
2018/09/26
0
0
nginx做负载CDN加速获取端真实ip

在不用cdn的情况下,nginx做负载获取真实ip时,nginx配置如下: proxysetheader Host $host;proxysetheader X-Real-IP $remote_addr;proxysetheader X-Forwarded-For $proxyaddxforwardedfo......

lavafree
2012/12/22
419
0
nginx反向代理后应用程序如何获取客户端真实IP?

nginx反向代理后应用程序如何获取客户端真实IP? 2017年10月30日 10:32:03 it0101 阅读数:6200 标签: tomcatjavawebnginx应用服务器servlet 更多 个人分类: 学习经验服务器 版权声明:本文...

linjin200
2018/12/07
43
0
nginx设置反向代理怎么获取客户端的真实IP和域名以供日志分析

版权声明:本文为EnweiTech原创文章,未经博主允许不得转载。 https://blog.csdn.net/English0523/article/details/80047851 nginx反向代理后,在应用中取得的ip都是反向代理服务器的ip,取得...

天府云创
2018/04/23
0
0
关于httpservletrequest的获取真实的ip

request方法客户端IP: request.getRemoteAddr() 输出:192.168.0.106 客户端主机名:request.getRemoteHost()输出:abc request.getHeader("Host") 输出:192.168.0.1:8080 Web服务器名字:......

小老傅
2014/08/08
13.5K
4

没有更多内容

加载失败,请刷新页面

加载更多

一起来学Java8(四)——复合Lambda

在一起来学Java8(二)——Lambda表达式中我们学习了Lambda表达式的基本用法,现在来了解下复合Lambda。 Lambda表达式的的书写离不开函数式接口,复合Lambda的意思是在使用Lambda表达式实现函...

猿敲月下码
22分钟前
7
0
debian10使用putty配置交换机console口

前言:Linux的推广普及,需要配合解决实际应用方能有成效! 最近强迫自己用linux进行实际工作,过程很痛苦,还好通过网络一一解决,感谢各位无私网友博客的帮助! 系统:debian10 桌面:xfc...

W_Lu
53分钟前
10
0
aelf Enterprise 0.8.0 beta有奖公测,“Bug奖金计划”重磅开启

2019年9月30日,aelf Enterprise 0.8.0 beta版正式发布。aelf Enterprise 0.8.0 beta是一个完备的区块链系统, 包含完备的区块链系统、开发套件、开发文档、以及配套的基础应用和基础服务。 ...

AELF开发者社区
54分钟前
10
0
oracle 初始化数据库脚本

create user lpf identified by 123456; create tablespace lpf_ts_cms datafile '/opt/app/oracle/product/11.2.0/lpf.dbf' size 200M; alter user lpf default tablespace lpf_ts_cms; sel......

internetafei
59分钟前
8
0
深入了解Redis底层数据结构

说明 说到Redis的数据结构,我们大概会很快想到Redis的5种常见数据结构:字符串(String)、列表(List)、散列(Hash)、集合(Set)、有序集合(Sorted Set),以及他们的特点和运用场景。不过它们是...

TurboSanil
59分钟前
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部