现在一般项目的web服务器前面还有代理服务器,获取访客ip不能直接用$_SERVER['REMOTE_ADDR'],而是类似$_SERVER['HTTP_X_FORWARDED_FOR'],我看了一下laravel也能获取到。具体办法是
$request->setTrustedProxies(array('10.32.0.1/16'));
$ip = $request->getClientIp();
含义是如果$_SERVER['REMOTE_ADDR']是局域网ip,而且又获取到$_SERVER['HTTP_X_FORWARDED_FOR'],则取$_SERVER['HTTP_X_FORWARDED_FOR'],当然也有判断有没有$_SERVER['FORWARDED']。
只是没有地方可以全局setTrustedProxies
转载:/topics/2570