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

相关推荐
IT·小灰灰12 分钟前
深度解析重排序AI模型:基于硅基流动API调用多语言重排序AI实战指南
java·大数据·javascript·人工智能·python·数据挖掘·php
g***789114 分钟前
Python连接SQL SEVER数据库全流程
数据库·python·sql
子午17 分钟前
【卫星图像识别系统】Python+TensorFlow+Vue3+Django+人工智能+深度学习+卷积网络+resnet50算法
人工智能·python·深度学习
___波子 Pro Max.19 分钟前
Python文档字符串指南
python
山海青风21 分钟前
用 Meta MMS-TTS + Python在本地把藏文文本变成藏语语音
python·音视频
摸爬滚打李上进40 分钟前
Pycharm编辑HTML文件注释问题
python·pycharm·django·bootstrap·html5
二川bro41 分钟前
内存泄漏检测:Python内存管理深度解析
java·开发语言·python
武子康1 小时前
AI研究-133 Java vs Kotlin/Go/Rust/Python/Node:2025 详细对比分析 定位与取舍指南
java·javascript·python·golang·rust·kotlin·node
执笔论英雄1 小时前
【RL]expand_requests干啥的
服务器·开发语言·python
kesifan1 小时前
JAVA线程的建立方法
java·开发语言·python