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

相关推荐
像一只黄油飞几秒前
第二章-01-字面量
笔记·python·学习·零基础
2401_871696522 分钟前
PHP源码对主板M.2插槽数量有要求吗_扩展性规划建议【方法】
jvm·数据库·python
qq_189807032 分钟前
防止SQL注入的运维实践_实时清理数据库缓存与历史记录
jvm·数据库·python
weixin_458580122 分钟前
MongoDB广告点击追踪如何建模_点击事件聚合与去重记录
jvm·数据库·python
justjinji3 分钟前
CSS如何实现垂直居中对齐_CSS Grid容器内的完美居中方案
jvm·数据库·python
Shorasul3 分钟前
Golang map怎么判断key存在_Golang map键值判断教程【通俗】
jvm·数据库·python
2301_815279525 分钟前
Golang go mod tidy怎么清理依赖_Golang依赖清理教程【核心】
jvm·数据库·python
echome8886 分钟前
Python 装饰器实战指南:从入门到精通的 10 个实用技巧
python
整点薯条7787 分钟前
用 Python 给家里做一次噪音频谱审计:程序员的声学工程实践(含完整源码)
开发语言·python·噪音控制
子非吾喵7 分钟前
本地部署AI大模型:Ollama + Qwen3 完整指南,用Python打造智能聊天助手
开发语言·人工智能·python