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

相关推荐
面朝大海,春不暖,花不开7 分钟前
使用 Python 正则表达式实现文本替换与电话号码规范化
python·mysql·正则表达式
淘小白_TXB21967 分钟前
Python网页自动化Selenium中文文档
python·selenium·自动化·网页自动化
伍六星11 分钟前
Flask和Django,你怎么选?
数据库·django·flask
Clair-Sean28 分钟前
【JavaSE】多线程基础学习笔记
笔记·python·学习
EverBule2 小时前
Python 训练 day46
开发语言·python
WangY_ZQ2 小时前
Python 如何在Python 3.6上安装PIP
linux·python·pip
聚客AI2 小时前
系统掌握PyTorch:图解张量、Autograd、DataLoader、nn.Module与实战模型
人工智能·pytorch·python·rnn·神经网络·机器学习·自然语言处理
狮子也疯狂2 小时前
基于Python的气象数据分析及可视化研究
python·信息可视化·数据分析
蓝婷儿3 小时前
6个月Python学习计划 Day 18 - 项目实战 · 学生成绩管理系统(OOP版)
开发语言·python·学习
HINOTOR_3 小时前
DAY 25 异常处理
开发语言·python