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

相关推荐
好家伙VCC13 小时前
**发散创新:用 Rust实现数据编织(DataWrangling)的高效流式处理架构**在现
java·开发语言·python·架构·rust
编程大师哥13 小时前
Python 爬虫
python
用户01900478326713 小时前
Python中:可迭代对象、迭代器、生成器、生成器表达式、列表推导式
python
2401_8769075213 小时前
《Python深度学习》
开发语言·python·深度学习
BatyTao13 小时前
Python从零起步6-文件及操作
python
学习指针路上的小学渣13 小时前
requests笔记
后端·python
_深海凉_13 小时前
LeetCode热题100-反转链表
python·leetcode·链表
gc_229913 小时前
学习python使用Ultralytics的YOLO26进行姿势估计的基本用法
python·ultralytics·yolo26·姿势估计
2201_7548647813 小时前
学习日记(2026年3月29日)
人工智能·python·机器学习
zero159713 小时前
Python 8天极速入门笔记(大模型工程师专用):第二篇-Python基础入门(变量、数据类型、print输出)
开发语言·笔记·python