如何在Laravel上访问1个IP的域或子域?

问题描述

您好如何在Laravel上访问1个静态IP的域?

我知道需要使用数组和$request->ip();

解决方法

您可以使用名为middleware的名称。它充当您的请求和控制器之间的隔离墙。中间件示例:

<?php

namespace App\Http\Middleware;

use Closure;

class FilterIps
{
    const ALLOWED = [
        '100.100.100.100',];

    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request,Closure $next)
    {
        abort_unless(in_array($request->ip(),self::ALLOWED),403);
        
        return $next($request);
    }
}

激活它的示例方法是将其放在web文件内$middlewareGroups变量的app/Http/Kernel.php数组中:

use App\Http\Middleware\FilterIps;

/**
 * The application's route middleware groups.
 *
 * @var array
 */
protected $middlewareGroups = [
    'web' => [
        // ...
        FilterIps::class,],// ...
];