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アドレスでの閲覧制限をつけることができました。
このカテゴリの最新記事
2025.10.30
ABテストのP値計算はどのAIがおすすめ?
2025.02.06
【GAS】Googleスプレッドシートで祝日を自動判定する方法
2023.11.16
【Certbot】SSL証明書更新処理の設定変更方法
2024.08.29
ChatGPT APIとC#(またはPython)を活用したAIメール応答システムの構築方法