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 分钟前
Pytorch张量拼接秘籍:cat与stack的深度解析与实战
人工智能·pytorch·python·深度学习·程序人生·算法·机器学习
Flandern11114 分钟前
Go程序员学习AI大模型项目实战:从环境管理到核心架构抽象
人工智能·python·学习·ai·golang
一山秋叶5 分钟前
wan2.2-i2v-a14b 模型架构
python·aigc·sglang
ShineWinsu5 分钟前
PyCharm性能调优避坑录
ide·python·pycharm
ZC跨境爬虫7 分钟前
DES、AES、RSA 加密算法详解(含 JS/Python 实现 + 逆向实战案例)
前端·javascript·python
Thomas.Sir12 分钟前
第十二章:RAG知识库开发之【RAG的预检索和后检索:核心优化策略与实践】
人工智能·python·ai·rag·预检索·后检索
南通DXZ13 分钟前
Python爬虫进阶:Selenium模拟真人操作(解决反爬+动态网页)
爬虫·python·selenium
yaoxin52112314 分钟前
372. Java IO API - 用户定义的文件属性
java·开发语言·python
ZhouDevin23 分钟前
【算法实战】DEIMv2全流程复现
人工智能·python·算法·目标检测·计算机视觉·transformer
long_songs34 分钟前
Python编程第03课:第一个Python程序 - Hello World深度解析
开发语言·python