CoderFunda
  • Home
  • About us
    • Contact Us
    • Disclaimer
    • Privacy Policy
    • About us
  • Home
  • Php
  • HTML
  • CSS
  • JavaScript
    • JavaScript
    • Jquery
    • JqueryUI
    • Stock
  • SQL
  • Vue.Js
  • Python
  • Wordpress
  • C++
    • C++
    • C
  • Laravel
    • Laravel
      • Overview
      • Namespaces
      • Middleware
      • Routing
      • Configuration
      • Application Structure
      • Installation
    • Overview
  • DBMS
    • DBMS
      • PL/SQL
      • SQLite
      • MongoDB
      • Cassandra
      • MySQL
      • Oracle
      • CouchDB
      • Neo4j
      • DB2
      • Quiz
    • Overview
  • Entertainment
    • TV Series Update
    • Movie Review
    • Movie Review
  • More
    • Vue. Js
    • Php Question
    • Php Interview Question
    • Laravel Interview Question
    • SQL Interview Question
    • IAS Interview Question
    • PCS Interview Question
    • Technology
    • Other

02 March, 2023

Ban Users and IPs in Your Laravel App With Banhammer

 Programing Coderfunda     March 02, 2023     Laravel, Packages, php     No comments   

 Banhammer for Laravel offers a simple way to ban any Model by ID and IP; it also allows blocking requests by IP addresses. Once your application bans users, you can use the provided middleware to prevent banned users from accessing certain parts of your application.

Once you install this package, you can quickly ban models via the package's Bannable trait:

namespace App\Models;
 
use Illuminate\Foundation\Auth\User as Authenticatable;
use Mchev\Banhammer\Traits\Bannable;
 
class User extends Authenticatable
{
use Bannable;
}

Now, you can ban users with:

$user->ban();
 
// IP ban
$user->ban([
'ip' => $user->ip,
]);
 
// List all bans
$model->bans();
 
// Check ban status
$model->isBanned();
$model->isNotBanned();
 
// Unban a model
$user->unban();

This package also supports banning IP addresses directly:

use Mchev\Banhammer\IP;
 
IP::ban("8.8.8.8");
IP::ban(["8.8.8.8", "4.4.4.4"]);

Another neat feature this package provides is that banned models can have an expiration date. Once a ban expires, the model will be unbanned automatically via the scheduler:

$user->banUntil('2 days');

This package also provides utility methods to clear all bans across the application, including manually unbanning expired bans if you need to clean up expired bans programatically.

You can learn more about this package, get full installation instructions, and view the source code on GitHub.

  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg
Email ThisBlogThis!Share to XShare to Facebook

Related Posts:

  • Store Laravel Settings in a Database Laravel Settings is a package by Spatie for storing strongly typed application settings in a repository and easily use them throughout… Read More
  • Laravel Envoyer API Package Laravel Envoyer SDK is a community package by Steve McDougall to work with the Laravel Envoyer API. Laravel released an API … Read More
  • Run Artisan Commands With a GUI Laravel Artisan GUI is a package by Bakhtiyar Issakhmetov for running Artisan command from a GUI instead of the command line.By defaul… Read More
  • Encrypt and Decrypt Data Using Keys Crypto is a package by Spatie that allows you to easily generate public/private key pairs and then encrypt/decrypt messages using thos… Read More
  • Generate and Extract Random Data with RandoPHP RandoPHP is a package by Roberto Butti that implements random generators (Integer, Char, Byte, etc.) and takes random samples from arr… Read More
Newer Post Older Post Home

0 comments:

Post a Comment

Thanks

Meta

Popular Posts

  • Write API Integrations in Laravel and PHP Projects with Saloon
    Write API Integrations in Laravel and PHP Projects with Saloon Saloon  is a Laravel/PHP package that allows you to write your API integratio...
  • Features CodeIgniter
    Features CodeIgniter There is a great demand for the CodeIgniter framework in PHP developers because of its features and multiple advan...
  • Laravel Breeze with PrimeVue v4
    This is an follow up to my previous post about a "starter kit" I created with Laravel and PrimeVue components. The project has b...
  • Fast Excel Package for Laravel
      Fast Excel is a Laravel package for importing and exporting spreadsheets. It provides an elegant wrapper around Spout —a PHP package to ...
  • Send message via CANBus
    After some years developing for mobile devices, I've started developing for embedded devices, and I'm finding a new problem now. Th...

Categories

  • Ajax (26)
  • Bootstrap (30)
  • DBMS (42)
  • HTML (12)
  • HTML5 (45)
  • JavaScript (10)
  • Jquery (34)
  • Jquery UI (2)
  • JqueryUI (32)
  • Laravel (1017)
  • Laravel Tutorials (23)
  • Laravel-Question (6)
  • Magento (9)
  • Magento 2 (95)
  • MariaDB (1)
  • MySql Tutorial (2)
  • PHP-Interview-Questions (3)
  • Php Question (13)
  • Python (36)
  • RDBMS (13)
  • SQL Tutorial (79)
  • Vue.js Tutorial (68)
  • Wordpress (150)
  • Wordpress Theme (3)
  • codeigniter (108)
  • oops (4)
  • php (853)

Social Media Links

  • Follow on Twitter
  • Like on Facebook
  • Subscribe on Youtube
  • Follow on Instagram

Pages

  • Home
  • Contact Us
  • Privacy Policy
  • About us

Blog Archive

  • September (100)
  • August (50)
  • July (56)
  • June (46)
  • May (59)
  • April (50)
  • March (60)
  • February (42)
  • January (53)
  • December (58)
  • November (61)
  • October (39)
  • September (36)
  • August (36)
  • July (34)
  • June (34)
  • May (36)
  • April (29)
  • March (82)
  • February (1)
  • January (8)
  • December (14)
  • November (41)
  • October (13)
  • September (5)
  • August (48)
  • July (9)
  • June (6)
  • May (119)
  • April (259)
  • March (122)
  • February (368)
  • January (33)
  • October (2)
  • July (11)
  • June (29)
  • May (25)
  • April (168)
  • March (93)
  • February (60)
  • January (28)
  • December (195)
  • November (24)
  • October (40)
  • September (55)
  • August (6)
  • July (48)
  • May (2)
  • January (2)
  • July (6)
  • June (6)
  • February (17)
  • January (69)
  • December (122)
  • November (56)
  • October (92)
  • September (76)
  • August (6)

  • Failed to install 'cordova-plugin-firebase': CordovaError: Uh oh - 9/21/2024
  • pyspark XPath Query Returns Lists Omitting Missing Values Instead of Including None - 9/20/2024
  • SQL REPL from within Python/Sqlalchemy/Psychopg2 - 9/20/2024
  • MySql Explain with Tobias Petry - 9/20/2024
  • How to combine information from different devices into one common abstract virtual disk? [closed] - 9/20/2024

Laravel News

  • Test Deferred Operations Easily with Laravel's withoutDefer Helper - 6/18/2025

Copyright © 2025 CoderFunda | Powered by Blogger
Design by Coderfunda | Blogger Theme by Coderfunda | Distributed By Coderfunda