2023
December
06
【Laravel】MiddlewareでIP制限をする
Laravelサイトの特定のページに、IPアドレスでの閲覧制限をつけたい。
環境
Laravel Framework 9.52.16
PHP 8.2.7
やったこと
middlewareの新規作成。
$ php artisan make:middleware IpFirewall
新規作成されたmiddlewareファイルを編集する。
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
class IpFirewall
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next
* @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
*/
public function handle(Request $request, Closure $next)
{
// IPの配列
$ip = [
// ここに閲覧OKのIPアドレスを書く
['ip' => '127.0.0.1'],
['ip' => '127.0.0.2']
];
// アクセスされたIPアドレスが$ipに含まれているかチェック
$detect = collect($ip)->contains('ip', $request->ip());
// $ipに設定したIPアドレス以外のアクセス時の処理
if (!$detect) {
return redirect('login');
}
// $ipに設定したIPアドレスからのアクセス時はrequestを通す
return $next($request);
}
}
作成したmiddlewareを app/Http/Kernel.php に追加する。
protected $routeMiddleware = [
...
'ip.firewall' => \App\Http\Middleware\IpFirewall::class,
];
routesファイルでIP制限をかけたいページは、追加したmiddlewareを通す。
Route::view('/test', 'test')->name('test')->middleware('ip.firewall');
こうすることで、簡単にIPアドレスでの閲覧制限をつけることができました。
このカテゴリの最新記事
2023.07.19
【RPA】PowerAutomateDesktop(PAD)を使ったブラウザ操作自動化
2025.04.11
windows11でmicrosoft 365をインストールしようとして、office 2016版がインストールされてしまう現象の対処法
2023.04.07
ローカルDBから本番DBへの移行(WordPress)
2024.07.23
【Linux】dumpコマンドによるCentOSのバックアップ・リストア方法