使用:
$info1 = $request->getRealIp(); $info2 = $request->getRemoteIp();
获取的都是阿里云的内网IP,怎样获取真实的客户端IP
这个已经配置了 也不行
打印下$request->header(),里面应该包含了真实IP
可以了。确实在$request->header()里面。感谢~
请问具体是哪个header里?
应该是 $request->header()['HTTP_X_FORWARDED_FOR']
$request->header()['HTTP_X_FORWARDED_FOR']
获取真实的是哪一个
我在控制器里面传入的$request->header()获取的。
demo: public function get(Request $request) { $res = $request->header(); return json(['data'=>$res]); }
结果: {\"remoteip\":\"IP地址\",\"host\":\"域名\",\"x-forwarded-for\":\"IP地址\",\"connection\":\"close\",\"content-length\":\"0\",\"content-type\":\"application\/x-www-form-urlencoded\",\"user-agent\":\"EOLINKER\",\"accept\":\"\/\",\"eo-token\":\"d8ded4e6-2e77-4db5-9490-979916827cf9\",\"slb-ip\":\"IP地址\"}
用 $request->getRealIp();应该能获取真实ip,$request->getRealIp()会自动判断,如果是内网ip,尝试获取x-forwarded-for的值作为ip。
尝试了一下,在测试服务器上$request->getRealIp()确实可以,但是正式环境用的阿里云的负载均衡就不行了,需要用$request->header()获取
正式环境阿里云的负载均衡$request->getRealIp()获取的ip前半段是?
是内网IP 100.120. .
那是哪个 header 头呢?是 SLB-IP 吗?还是 REMOTE-IP,亦或者是 X-FORWARD-FOR 呢?
用 $request->getRealIp(false); (有个false参数)获取。 或者 $request->header('x-forwarded-for');
下个版本1.3.10(还没发布)可以直接用 $request->getRealIp(); 获取。
好的,我修改下
这个已经配置了 也不行
打印下$request->header(),里面应该包含了真实IP
可以了。确实在$request->header()里面。感谢~
请问具体是哪个header里?
应该是
$request->header()['HTTP_X_FORWARDED_FOR']
获取真实的是哪一个
我在控制器里面传入的$request->header()获取的。
demo:
public function get(Request $request)
{
$res = $request->header();
return json(['data'=>$res]);
}
结果:
{\"remoteip\":\"IP地址\",\"host\":\"域名\",\"x-forwarded-for\":\"IP地址\",\"connection\":\"close\",\"content-length\":\"0\",\"content-type\":\"application\/x-www-form-urlencoded\",\"user-agent\":\"EOLINKER\",\"accept\":\"\/\",\"eo-token\":\"d8ded4e6-2e77-4db5-9490-979916827cf9\",\"slb-ip\":\"IP地址\"}
用 $request->getRealIp();应该能获取真实ip,$request->getRealIp()会自动判断,如果是内网ip,尝试获取x-forwarded-for的值作为ip。
尝试了一下,在测试服务器上$request->getRealIp()确实可以,但是正式环境用的阿里云的负载均衡就不行了,需要用$request->header()获取
正式环境阿里云的负载均衡$request->getRealIp()获取的ip前半段是?
是内网IP 100.120. .
那是哪个 header 头呢?是 SLB-IP 吗?还是 REMOTE-IP,亦或者是 X-FORWARD-FOR 呢?
用 $request->getRealIp(false); (有个false参数)获取。
或者 $request->header('x-forwarded-for');
下个版本1.3.10(还没发布)可以直接用 $request->getRealIp(); 获取。
好的,我修改下