2017 © Pedro Peláez
 

library blockip

Block requests from specified IPs in Laravel 5.

image

olssonm/blockip

Block requests from specified IPs in Laravel 5.

  • Thursday, November 9, 2017
  • by olssonm
  • Repository
  • 1 Watchers
  • 3 Stars
  • 14 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 5 Versions
  • 27 % Grown

The README.md

Blockip

Latest Version on Packagist ![Software License][ico-license] Build Status, (*1)

Block requests from specified IPs quick and easy in Laravel. Highly customizable., (*2)

Version Compatibility

Laravel blockip
5.3.x 1.x.x
5.4.x 2.x.x
5.5/5.6/5.7/5.8 3.x.x
^6.0 4.x.x
^7.0 5.x.x
^8.0 6.x.x

Installation

Via Composer, (*3)

``` bash $ composer require olssonm/blockip, (*4)


Add the service provider to the providers array in `config/app.php` (auto-detection also available in newer Laravel-versions). ``` php <?php 'providers' => [ Olssonm\Blockip\BlockipServiceProvider::class ]

Usage

This backage sets up the blockip-middleware for use in your application. All routes that uses the middlareware is protected from unwanted requests., (*5)

Use in a group

``` php <?php, (*6)

Route::group(['middleware' => 'blockip'], function() {
    Route::get('/', ['as' => 'start', 'uses' => 'StartController@index']);
    Route::get('/page', ['as' => 'page', 'uses' => 'StartController@page']);
});

#### Singe route ``` php <?php Route::get('/', [ 'as' => 'start', 'uses' => 'StartController@index', 'middleware' => 'blockip' ]);

Configuration

Run the command $ php artisan vendor:publish --provider="Olssonm\Blockip\BlockipServiceProvider" to publish the packages configuration. In config/blockip.php you can edit your settings:, (*7)

``` php <?php, (*8)

return [, (*9)

// IPs to block
'ips' => [
    '37.123.187.245',   // an example of a single IP
    '23.20.0.0/14'      // an example of an IP-range with CIDR-notation
],

// Message for blocked requests
'error_message'     => '401 Unauthorized.',

// Uncomment to use a view instead of plaintext message
// 'error_view'     => 'blockip::default',

// Environments where the middleware is active
'envs'              => [
    'testing',
    'development',
    'production'
],

// Main handler for the getIp(), getIpsToBlock() and getError-methods().
// Check the documentation on how to customize this to your liking.
'handler'           => Olssonm\Blockip\Handlers\BlockipHandler::class,

];, (*10)


Everything here is pretty much self explanatory, but because the blockip-handler is customizable you can pretty much change every aspect of the middleware. If you want to write your own handler, you should implement the `Olssonm\Blockip\Handlers\BaseHandler`-interface, like so: ``` php <?php use Olssonm\Blockip\Handlers\BaseHandler; class MyHandler implements BaseHandler { /** * @return string */ public function getIp() { // Method to retrieve the request IP } /** * @return array */ public function getIpsToBlock() { // Method to set what IPs to be blocked } /** * @return response */ public function getError() { // Method to set the response } }

Using the system you have the ability to for example make your getIpsToBlock()-method check IPs from an API, your getError() return a JSON-response etc. etc., (*11)

Note: the default handler already checks for the special HTTP_CF_CONNECTING_IP-header when using the Cloudflare CDN., (*12)

Testing

``` bash $ composer test, (*13)


or ``` bash $ phpunit

Laravel always runs in the "testing" environment while running tests. Make sure that testing is set in the envs-array in blockip.php., (*14)

License

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

© 2021 Marcus Olsson., (*16)

The Versions

09/11 2017

dev-master

9999999-dev https://github.com/olssonm/blockip

Block requests from specified IPs in Laravel 5.

  Sources   Download

MIT

The Requires

 

The Development Requires

security ip laravel 5 olssonm middlareware block ip

09/11 2017

v3.0.0

3.0.0.0 https://github.com/olssonm/blockip

Block requests from specified IPs in Laravel 5.

  Sources   Download

MIT

The Requires

 

The Development Requires

security ip laravel 5 olssonm middlareware block ip

29/01 2017

v2.0.0

2.0.0.0 https://github.com/olssonm/blockip

Block requests from specified IPs in Laravel 5.

  Sources   Download

MIT

The Requires

 

The Development Requires

security ip laravel 5 olssonm middlareware block ip

29/01 2017

dev-dev

dev-dev https://github.com/olssonm/blockip

Block requests from specified IPs in Laravel 5.

  Sources   Download

MIT

The Requires

 

The Development Requires

security ip laravel 5 olssonm middlareware block ip

28/11 2016

V1.0.0

1.0.0.0 https://github.com/olssonm/blockip

Block requests from specified IPs in Laravel 5.

  Sources   Download

MIT

The Requires

 

The Development Requires

security ip laravel 5 olssonm middlareware block ip