Чтобы ограничить доступ к вашему Laravel-приложению только с определенного IP-адреса, вы можете использовать middleware, чтобы проверить IP-адрес клиента при каждом запросе.
В Laravel есть предустановленный middleware IPMiddleware
, который можно использовать для этой цели. Если вы хотите настроить доступ только с определенного IP-адреса, включите этот middleware в группу middleware для маршрутов или контроллеров, к которым вы хотите ограничить доступ.
Вот как вы можете сделать это:
1. Создайте middleware:
php artisan make:middleware IPWhitelistMiddleware
2. Откройте только что созданный файл middleware IPWhitelistMiddleware.php
в директории App/Http/Middleware
.
3. Добавьте следующий код в метод handle
middleware:
public function handle($request, Closure $next) { $allowedIPs = [ '192.168.1.1', // Добавьте сюда все разрешенные IP-адреса '192.168.1.2', // и так далее... ]; if (!in_array($request->ip(), $allowedIPs)) { abort(403, 'Доступ запрещен.'); } return $next($request); }
В этом примере только IP-адреса 192.168.1.1
и 192.168.1.2
будут иметь доступ к приложению.
4. Зарегистрируйте middleware: откройте файл app/Http/Kernel.php
и добавьте 'ip.whitelist' => AppHttpMiddlewareIPWhitelistMiddleware::class
в массив $middleware
.
Теперь middleware будет проверять IP-адрес пользователя при каждом запросе и блокировать доступ, если IP-адрес не входит в список разрешенных IP-адресов.
Вы также можете применить middleware к конкретному маршруту или группе маршрутов, добавив 'ip.whitelist'
в свойство middleware
вашего маршрута или группы маршрутов:
Route::get('/', function () { // })->middleware('ip.whitelist');
Или вы можете применить middleware к группе маршрутов в вашем файле маршрутов, используя метод middleware
:
Route::middleware('ip.whitelist')->group(function () { // Все маршруты, к которым должно быть ограничено доступ только с определенного IP-адреса });
Теперь ваше Laravel-приложение будет разрешать доступ только с определенного IP-адреса.