Django 获取用户IP

获取代理函数

python 复制代码
def get_ip(request):
    # 判断是否使用代理
    x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')
    if x_forwarded_for:
        # 使用代理获取真实的ip
        ip = x_forwarded_for.split(',')[0]
    else:
        # 未使用代理获取IP
        ip = request.META.get('REMOTE_ADDR')

    return HttpResponse('{"origin": "%s"}' % ip)

生产环境配置NGINX

bash 复制代码
# nginx配置
location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

在使用NGINX做负载均衡的生产环境中如果不配置NGINX,那么 request.META.get('REMOTE_ADDR') 获取到的是NGINX负载均衡proxy_pass 127.0.0.1 IP,而不是实际用户IP

相关推荐
weixin_307779132 小时前
在AWS上使用KMS客户端密钥加密S3文件,同时支持PySpark读写和Snowflake导入
大数据·数据仓库·python·spark·云计算
IpdataCloud7 小时前
Java 获取本机 IP 地址的方法
java·开发语言·tcp/ip
eybk8 小时前
Qpython+Flask监控添加发送语音中文信息功能
后端·python·flask
weixin_307779138 小时前
Spark Streaming的背压机制的原理与实现代码及分析
大数据·python·spark
忆源8 小时前
SOME/IP--协议英文原文讲解3
网络·网络协议·tcp/ip
deephub9 小时前
十大主流联邦学习框架:技术特性、架构分析与对比研究
人工智能·python·深度学习·机器学习·联邦学习
西猫雷婶10 小时前
python学opencv|读取图像(四十七)使用cv2.bitwise_not()函数实现图像按位取反运算
开发语言·python·opencv
背太阳的牧羊人10 小时前
分词器的词表大小以及如果分词器的词表比模型的词表大,那么模型的嵌入矩阵需要被调整以适应新的词表大小。
开发语言·人工智能·python·深度学习·矩阵
tacity12 小时前
fantastic-admin5.0发布,Vue3 + django重构(一)后端
重构·django·fantastic-admin·5.0
码界筑梦坊12 小时前
基于Django的豆瓣影视剧推荐系统的设计与实现
后端·python·django·毕业设计