在laravel中,下面两种方法都能获得用户IP。
$request->getClientIp();
$request->ip();
但是,这是在没有代理的情况下,有时候我们的业务使用了反向代理、负载均衡、cdn加速等等,我们就要设置信任的代理IP。
//修改app\Http\Middleware\TrustProxies.php 中的$proxies
protected $proxies = [
'192.168.1.1/24',//你信任的代理IP,支持IP段。
];
如果你不清楚代理服务器IP,或者IP会一直变动。可以设置信任所有代理。(这样是极其不安全的,用户可以伪造X-Forwarded-For来伪造IP)
protected $proxies = '**';