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

相关推荐
爱打代码的小林2 分钟前
numpy库数组笔记
笔记·python·numpy
Misnice10 分钟前
pip 查看当前包列表
windows·python·pip
qq_3561969518 分钟前
day29异常处理@浙大疏锦行
python
互亿无线明明21 分钟前
如何为全球业务构建可扩展的“群发国际短信接口”?
java·c++·python·golang·eclipse·php·erlang
程序员小远21 分钟前
Selenium自动化测试之弹窗处理
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
胡耀超27 分钟前
AI的记忆革命:从Titans架构到长时运行智能体,谷歌Google,Anthropic,NeurIPS 2025
人工智能·python·ai·架构·智能体·上下文·titans
川石课堂软件测试31 分钟前
使用loadrunner调用mysql API进行性能测试
服务器·数据库·python·selenium·mysql·单元测试·自动化
Python学习导航1 小时前
Python开源项目月排行 2025年10月
开发语言·python
祝余Eleanor1 小时前
Day 30 函数专题2 装饰器
人工智能·python·机器学习·数据分析
nwsuaf_huasir1 小时前
深度学习1.3-软件篇-2025Pycharm添加导入anaconda中虚拟环境的python解释器以及相关Error解决方案
人工智能·python·深度学习