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

相关推荐
小oo呆6 分钟前
【学习心得】Python好库推荐——pipx
linux·开发语言·python
smile_Iris7 分钟前
Day 28 元组和OS模块
python·机器学习
AI科技星23 分钟前
时空运动的几何约束:张祥前统一场论中圆柱螺旋运动光速不变性的严格数学证明与物理诠释
服务器·数据结构·人工智能·python·科技·算法·生活
AIsdhuang29 分钟前
2025 AI培训权威榜:深度评测与趋势前瞻
人工智能·python·物联网
m0_7269659832 分钟前
RAG小实战
开发语言·python
只与明月听36 分钟前
FastAPI入门实战
前端·后端·python
苏小瀚41 分钟前
[JavaSE] 网络原理(HTTP_HTTPS)
网络·tcp/ip·http
无心水1 小时前
【Python实战进阶】12、Python面向对象编程实战:从零构建搜索引擎,掌握封装、继承与多态!
开发语言·python·搜索引擎·python进阶·python面向对象·搜索引擎实战·封装继承多态
mortimer1 小时前
Python + FFmpeg 视频自动化处理指南:从硬件加速到精确剪辑
python·ffmpeg·音视频开发
帅得不敢出门1 小时前
Android8 Framework实现Ntp服务器多域名轮询同步时间
android·java·服务器·python·framework·github