darsyn / stack-ip-restrict

HTTP Kernel middleware for restriction applications, both blacklisting and whitelisting, from IP ranges.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

IP Address Build Status

HTTP Kernel middleware for restriction applications, both blacklisting and whitelisting, from IP ranges.

Installation

Use Composer:

composer require darsyn/stack-ip-restrict

Requirements

Although this library should work with PHP 5.3, it is not officially supported since it reached end-of-life in 2014.

As of version 2.0.0, this library supports Symfony 3 but as a result the lowest version it supports is 2.8.0.

Example Usage

<?php

use Darsyn\Stack\IpRestrict\Blacklist;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\Kernel;

$kernel = new Kernel();

$stackedApp = new Blacklist($kernel, $listedIpAddresses);
// Set a custom response object to send when access is denied, if you so wish:
$stackedApp->setAccessDeniedResponse(new Response(
    'Uh-uh, no website until you pay up!',
    402
));

$request = Request::createFromGlobals();
$response = $stackedApp->handle($request);
$response->send();
$kernel->terminate();

The IpRestrict HTTP Kernel middleware is compatible with StackPHP's Builder:

<?php

use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\Kernel;

$kernel = new Kernel();

$stackedApp = (new Stack\Builder)
    ->push('Darsyn\Stack\IpRestrict\Blacklist', $listedIpAddresses)
    // All your other middlewares...
    ->resolve($kernel);

$request = Request::createFromGlobals();
$response = $stackedApp->handle($request);
$response->send();
$kernel->terminate();

License

Please see the separate license file included in this repository for a full copy of the MIT license, which this project is licensed under.

Authors

If you make a contribution (submit a pull request), don't forget to add your name here!

About

HTTP Kernel middleware for restriction applications, both blacklisting and whitelisting, from IP ranges.

License:MIT License


Languages

Language:PHP 100.0%