juanpagfe / slim-ip-filter
一个轻量级中间件,用于限制/允许访问您路由的IP地址
0.1.0
2017-12-05 18:10 UTC
Requires
- php: >=5.5.0
- akrabat/rka-ip-address-middleware: ~0.4
- respect/validation: ^1.0
Requires (Dev)
- phpunit/phpunit: ^4.0
- scrutinizer/ocular: ~1.1
- slim/slim: ~3.0
This package is not auto-updated.
Last update: 2024-09-23 06:50:22 UTC
README
一个用于过滤访问您路由的IP地址的轻量级中间件。它内部使用 Ip 验证器 Respect/Validation 和 rka-ip-address-middleware。基于 slim-restrict-route
安装
通过 Composer
$ composer require juanpagfe/slim-ip-filter
需要 Slim 3.0.0 或更高版本。
使用方法
您还需要注册 RKA\Middleware\IpAddress 中间件以正确读取 IP 地址。在大多数情况下,您希望为单个路由注册 Jpgfe\Slim\IpFilter,但是,由于它是一个中间件,您也可以为所有路由注册它。
按路由注册
$app = new \Slim\App(); $app->add(new RKA\Middleware\IpAddress()); $options = array( array( 'ip' => '192.*.*.*', 'allow' => false ) ); $app->get('/api/myEndPoint',function ($req, $res, $args) { //Your amazing route code })->add(new \Jpgfe\Slim\IpFilter\RestrictRoute($options)); $app->run();
为所有路由注册
$app = new \Slim\App(); $app->add(new RKA\Middleware\IpAddress()); $options = array( array( 'ip' => '192.*.*.*', 'allow' => false ) ); // Register middleware for all routes // If you are implementing per-route checks you must not add this $app->add(new \Jpgfe\Slim\IpFilter\RestrictRoute($options)); $app->get('/foo', function ($req, $res, $args) { //Your amazing route code }); $app->post('/bar', function ($req, $res, $args) { //Your amazing route code }); $app->run();
IP地址
您可以使用在 options 中提供的 ip 的不同值来限制路由
- PHP 提供的任何有关
FILTER_VALIDATE_IP的过滤器(例如:FILTER_FLAG_NO_PRIV_RANGE); - 星号(
*)用于过滤给定子网中的 IP(例如:192.*); - 范围(
-)用于过滤给定范围内的 IP(例如:192.168.0.0-192.168.255.255); - 单个 IP(例如:
192.168.0.1-192.168.0.1); - 用于过滤 IP 的范围数组(例如:
array('192.0.0.0-192.255.255.255', '178.0.0.*'))。
您可以在 Ip 验证器的 文档 和其 单元测试类 中找到更多语法信息。
测试
$ phpunit
贡献
有关详细信息,请参阅 CONTRIBUTING。