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

相关推荐
码云骑士4 分钟前
22-接手Django老项目(下)-读懂urls路由树与架构脉络
python·架构·django
码云骑士5 分钟前
29-Python-logging日志模块-print不是日志的生产级实战
开发语言·python
森G6 分钟前
65、UDP协议(拓展选学)---------网络编程
网络·c++·qt·网络协议·tcp/ip·udp
Attachment George13 分钟前
山东大学软件学院-项目实训-个人开发日志(十):材料问答链路开发——文档解析、OCR兜底与持续追问完善
python·ai·langchain·kotlin·rag
码云骑士13 分钟前
24-Django请求全链路-WSGI到数据库响应的完整旅程
数据库·python·django
贺国亚21 分钟前
06-奢侈零售VIP-Clienteling-Agent
开发语言·python·零售
knighthood200122 分钟前
鸿蒙PC迁移:jieba 中文分词 Python 三方库鸿蒙PC适配全记录
python·中文分词·harmonyos
nix.gnehc27 分钟前
Python 内存管理深度解析
开发语言·python
liulilittle32 分钟前
回归物理本质:对拥塞控制实验室依赖与公平性误置的反思
网络·tcp/ip·计算机网络·算法·tcp·通信·拥塞控制
cyforkk32 分钟前
破除网络协议迷雾:TCP、TLS 与 HTTP 的“连环套”逻辑
网络协议·tcp/ip·http