Laravel 11 Restrict User Access From IP Address

Laravel 11 restrict or block user access from IP address; Through this tutorial, i am going to show you how to restrict or block a user by IP address for accessing the website in Laravel 11 apps.

Laravel 11 Restrict User Access From IP Addresses Tutorial

Follow following steps to implement restrict or block user by ip address in Laravel 11 app:

  • Install Laravel 11 App
  • Connecting App to Database
  • Create a Middleware
  • Register the Middleware

Step 1: Install Laravel 11 App

Run the below given command on command prompt to download fresh laravel setup:

composer create-project --prefer-dist laravel/laravel blog

Step 2: Connecting App to Database

Go to your project root directory, find .env file and setup database credential as follow:

 DB_CONNECTION=mysql 
 DB_HOST=127.0.0.1 
 DB_PORT=3306 
 DB_DATABASE=here your database name here
 DB_USERNAME=here database username here
 DB_PASSWORD=here database password here

Step 3: Create a Middleware

Run the following command to create a middleware named class BlockIpMiddleware:

php artisan make:middleware BlockIpMiddleware

Now, Go to app/Http/Middleware folder and open BlockIpMiddleware.php file. Then update the following code into your BlockIpMiddleware.php file:

<?php
namespace App\Http\Middleware;
use Closure;
class BlockIpMiddleware
{
    // set IP addresses
    public $blockIps = ['ip-addr-1', 'ip-addr-2', '127.0.0.1'];
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if (in_array($request->ip(), $this->blockIps)) {
            return response()->json(['message' => "You don't have permission to access this website."]);
        }
        return $next($request);
    }
}

Step 4: Register the Middleware

To register the middleware, so go to app/Http/ and open Kernel.php file. And register middleware as follow:

protected $middlewareGroups = [
    'web' => [
        //--------------
        \App\Http\Middleware\BlockIpMiddleware::class,
    ],
    'api' => [
        //--------------
    ],
];

Conclusion

Llaravel block IP address example tutorial, you have learned how to block user by its IP address in laravel app.

Recommended Laravel Tutorials

Leave a Comment