http获取用户访问的IP地址

获取用户访问的IP地址:

如果用户是正常情况下其字典的KEY键名为REMOTE_ADDR

request.META['REMOTE_ADDR']

但是有些网站服务器会使用nginx等代理http,或者是该网站做了负载均衡,导致使用remote_addr抓取到的是127.0.0.1,这时使用HTTP_X_FORWARDED_FOR才获得是用户的真实IP。推荐使用以下代码:

复制代码
if 'HTTP_X_FORWARDED_FOR' in request.META:
   ip = request.META.get('HTTP_X_FORWARDED_FOR')
else:
   ip = request.META.get('REMOTE_ADDR')
相关推荐
天天进步20153 小时前
Tunnelto 源码解析 #4:Wormhole 控制通道:WebSocket 如何建立一条“隧道控制线”
网络·websocket·网络协议
古道青阳5 小时前
深入密码学内核:对称/非对称原理、PKI体系及C语言实现
网络协议·https·ssl
夜月yeyue7 小时前
KCP 与 UDP 可靠传输
linux·网络·单片机·网络协议·udp·php
一个向上的运维者7 小时前
Docker 自定义网络中容器无法通过宿主机 IP 访问服务的完整排障记录
网络·tcp/ip·docker
WIZnet7 小时前
W55RP20-EVB-MKR MicroPython 实战(14):MQTT 协议与 OneNET 平台对接
单片机·网络协议·wiznet
GlobalSign数字证书8 小时前
中小企业的 SSL/TLS 证书管理,有更轻量的方案
数据库·网络协议·ssl
郑洁文9 小时前
基于Python的HTTP服务漏洞信息收集工具设计与实现
开发语言·python·http
熊出没11 小时前
我用 Netty TCP 搭建物联网云平台,并对接车辆电池信息解析
物联网·网络协议·tcp/ip
草莓熊Lotso12 小时前
【Linux网络】深入理解 HTTP 协议(一):从基础概念到 URL 编码解码
linux·网络·c++·网络协议·http·软件工程
SilentSamsara12 小时前
HTTP 客户端实战:httpx/重试/限速/连接池/中间件设计
开发语言·网络·python·http·青少年编程·中间件·httpx