You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker环境下Django获取浏览器访问IP的相关疑问

Django容器环境下获取访问来源IP问题解答

疑问1:10.0.0.2这个IP来自哪里?

10.0.0.2是Docker默认网桥(docker0)的网关IP。你在宿主机用127.0.0.1访问容器端口时,请求会经过Docker的端口转发机制,容器视角里的请求来源就是网桥的网关地址,而非宿主机的127.0.0.1或LAN IP。

疑问2:应该访问request.META中的哪个键来记录访问来源IP?

分场景处理:

  • 宿主机本地用LAN IP访问:先确保容器端口映射绑定到0.0.0.0(而非仅127.0.0.1),然后用宿主机LAN IP(http://192.168.0.100:9001)访问,此时request.META.get('REMOTE_ADDR')会返回宿主机的LAN IP。
  • 局域网内其他设备访问:同样保证端口映射绑定0.0.0.0,设备通过宿主机LAN IP访问,REMOTE_ADDR会直接返回访问设备的真实LAN IP。
  • 后续添加反向代理场景:如果部署了Nginx等反向代理,需要配置代理传递真实IP(比如设置X-Forwarded-For请求头),此时你的原有代码就能通过HTTP_X_FORWARDED_FOR拿到真实IP,REMOTE_ADDR会是代理服务器的IP。

注意:HTTP_ORIGIN和HTTP_REFERER记录的是浏览器地址栏的URL,并非真实的来源IP,不能用于记录访问来源。

内容的提问来源于stack exchange,提问作者MsA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 18:43:14