Skip to content

This is an annoying IP management package for Laravel that you can use in your projects.

License

Notifications You must be signed in to change notification settings

jobmetric/laravel-ban-ips

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Contributors Forks Stargazers MIT License LinkedIn

Ban Ip for laravel

This is an annoying IP management package for Laravel that you can use in your projects.

Install via composer

Run the following command to pull in the latest version:

composer require jobmetric/laravel-ban-ips

Documentation

To use the services of this package, please follow the instructions below.

Migrate

After installing the package, you must migrate by running the following command:

php artisan migrate

Usage

To use the services of this package, you must use the BanIp class in your model.

Store Ban Ip

To store a ban ip, you can use the following code:

use JobMetric\BanIp\Facades\BanIp;

BanIp::store([
    'ip' => 'sample ip',
    'type' => 'hacker',
    'reason' => 'This is a sample reason',
    'banned_at' => now(),
    'expire_at' => now()->addDays(1),
]);

Note:

The ip field is required and must be a string.

The type field is required and must be one of the following values: hacker, spammer, bot, another.

The reason field is required and must be a string.

The banned_at field is required and must be a date.

The expire_at field is required and must be a date greater than the banned_at field.

Update Ban Ip

To update a ban ip, you can use the following code:

use JobMetric\BanIp\Facades\BanIp;

BanIp::update([
    'type' => 'hacker',
    'reason' => 'This is a sample reason',
    'banned_at' => now(),
    'expire_at' => now()->addDays(1),
]);

Note:

The type field is sometimes and must be one of the following values: hacker, spammer, bot, another.

The reason field is sometimes and must be a string.

The banned_at field is sometimes and must be a date.

The expire_at field is sometimes and must be a date greater than the banned_at field.

Delete Ban Ip

To delete a ban ip, you can use the following code:

use JobMetric\BanIp\Facades\BanIp;

BanIp::delete(/* ban ip id */);

Delete Expired Ban Ip

To delete expired ban ip, you can use the following code:

use JobMetric\BanIp\Facades\BanIp;

BanIp::deleteExpired();

Helper Functions

This package contains several helper functions that you can use as follows:

  • storeBanIp: This function is used to store a ban ip.
  • updateBanIp: This function is used to update a ban ip.
  • deleteBanIp: This function is used to delete a ban ip.
  • deleteExpiredBanIp: This function is used to delete expired ban ip.

Rules

There are some rules for using this package:

  • BanIpExistRule: This rule is used to check if the IP is banned.

Ban Type

There can be various reasons for the IP ban:

  • hacker: This type of ban is used for hackers.
  • spammer: This type of ban is used for spammers.
  • bot: This type of ban is used for bots.
  • another: This type of ban is used for other reasons.

Commands

This package contains several commands that you can use as follows

Command Description
ban-ip:remove Remove ban ip expire time. (This command is executed every minute in your Laravel)

Events

This package contains several events for which you can write a listener as follows

Event Description
BanIpStoredEvent This event is called after storing the ban ip.
BanIpUpdateEvent This event is called after updating the ban ip.
BanIpDeleteEvent This event is called after delete the ban ip.

Contributing

Thank you for considering contributing to the Laravel Ban Ip! The contribution guide can be found in the CONTRIBUTING.md.

License

The MIT License (MIT). Please see License File for more information.