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

Laravel提交评论表单用$request->ip()获取IP为::1的原因是什么?

问题原因分析

  1. 你拿到的::1是IPv6协议下的本地回环地址,等效于IPv4的127.0.0.1,本地测试环境下拿到这个值是完全正常的,你的核心代码逻辑没有问题。
  2. 如果部署到线上服务器后依然无法拿到真实用户IP,通常是服务前面配置了反向代理(Nginx、CDN、负载均衡等),Laravel默认不会信任代理服务传递的客户端IP头,需要额外配置信任代理规则。

线上环境修复方案

修改app/Http/Middleware/TrustProxies.php文件:

  • 如果你确定服务完全运行在代理层之后,可以直接将$proxies属性设置为*,信任所有代理传递的IP头;
  • 安全要求更高的场景可以把$proxies的值设置为你的反向代理服务的真实IP段,避免伪造IP的风险。

本地验证方法

你可以用同一局域网内的其他设备(手机、其他电脑),通过你主机的局域网IP访问服务提交评论,此时拿到的IP会是对应设备的局域网地址(比如192.168.xxx.xxx),可以确认$request->ip()的逻辑是生效的。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 08:54:07