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

相关推荐
胖哥真不错5 分钟前
Python基于TensorFlow实现GRU-Transformer回归模型(GRU-Transformer回归算法)项目实战
python·gru·tensorflow·transformer·回归模型·项目实战·gru-transformer
chusheng184012 分钟前
Python Transformer 模型的基本原理:BERT 和 GPT 以及它们在情感分析中的应用
python·bert·transformer
離離原上譜34 分钟前
python网络爬虫基础:requests库的应用
爬虫·python
weixin_466202781 小时前
第29周:实现mnist手写数字识别(Tensorflow实战第一周)
人工智能·python·tensorflow
代码猪猪傻瓜coding1 小时前
python mac vscode 脚本文件的运行
pytorch·python
梓羽玩Python1 小时前
推荐一款基于快手Kolors模型开发的虚拟试衣浏览器插件!妥妥的安排上!
人工智能·python·github
沫夕残雪1 小时前
网络编程及回显服务器
网络·tcp/ip·java-ee·intellij-idea·信息与通信
幽兰的天空2 小时前
【Python】正则表达式
python·正则表达式
小言从不摸鱼2 小时前
【Python】元组、字典与集合详解:数据容器的实战应用
人工智能·python·1024程序员节