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

相关推荐
李昊哲小课1 分钟前
第1章-PySide6 基础认知与环境配置
python·pyqt·pyside
2401_8942419239 分钟前
用Pygame开发你的第一个小游戏
jvm·数据库·python
Zzzz_my2 小时前
正则表达式(RE)
pytorch·python·正则表达式
天天鸭2 小时前
前端仔写了个 AI Agent,才发现大模型只干了 10% 的活
前端·python·ai编程
setmoon2142 小时前
使用Scikit-learn构建你的第一个机器学习模型
jvm·数据库·python
2401_833197733 小时前
为你的Python脚本添加图形界面(GUI)
jvm·数据库·python
敏编程4 小时前
一天一个Python库:tomlkit - 轻松解析和操作TOML配置
python
2401_879693874 小时前
使用Python进行图像识别:CNN卷积神经网络实战
jvm·数据库·python
IT小白34 小时前
windows的VMware虚拟机上的Linux系统(CentOS)配置永久ip(关机重启ip不变)
网络·网络协议·tcp/ip
yunyun321234 小时前
机器学习模型部署:将模型转化为Web API
jvm·数据库·python