laravel获取真实IP(前后端分离)

laravel获取真实IP(前后端分离)

最近使用前后端分离使用了反向代理,laravel获取ip时获取到的ip是自己服务器ip不对,下边教大家怎么改

效果图:

微信截图_20210219164019.png


1修改nginx配置

image.png

在代理中加入:

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

2修改laravel中间件(app\Http\Middleware\TrustProxies.php)

namespace App\Http\Middleware;

use Fideloper\Proxy\TrustProxies as Middleware;
use Illuminate\Http\Request;

class TrustProxies extends Middleware
{
    /**
     * The trusted proxies for this application.
     *
     * @var array|string
     */
     
//    protected $proxies = '*';
    protected $proxies = ['192.168.1.1/24',];#重点在这里 如果ip多个就写多个 也可以通上边一样 写*号但是不安全 24位是子网掩码

    /**
     * The headers that should be used to detect proxies.
     *
     * @var int
     */
    protected $headers = Request::HEADER_X_FORWARDED_ALL;
}

然后可以再用

dd(request()->ip());
dd(request()->getClientIp());

获取当前客户端ip正常了~~ 学会了吗?试试吧~

laravel获取真实IP(前后端分离)

喜欢(2)

评论 抢沙发

表情