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

相关推荐
不惑_9 分钟前
通俗理解多层感知机(MLP)
开发语言·人工智能·python·深度学习
山沐与山25 分钟前
【设计模式】Python责任链模式:从入门到实战
python·设计模式·责任链模式
luoluoal29 分钟前
基于python的图像的信息隐藏技术研究(源码+文档)
python·mysql·django·毕业设计·源码
电商API_1800790524739 分钟前
淘宝商品视频提取API全解析:从授权到落地实战
爬虫·python·信息可视化·数据分析·音视频
计算机程序设计小李同学1 小时前
基于 Flask 的养猪场信息模拟系统
后端·python·flask
heartbeat..1 小时前
网络通信核心知识全解析:模型、协议与 TCP 机制
java·网络·网络协议·tcp/ip
Iridescent11211 小时前
Iridescent:Day38
python
熬夜敲代码的小N1 小时前
2026 职场生存白皮书:Gemini Pro 实战使用指南
人工智能·python·ai·职场和发展
Franklin1 小时前
移植一个Pycharm的复杂项目:
ide·python·pycharm
94621931zyn61 小时前
外观设置 - Cordova 与 OpenHarmony 混合开发实战
笔记·python