juanpagfe/slim-ip-filter

一个轻量级中间件,用于限制/允许访问您路由的IP地址

0.1.0 2017-12-05 18:10 UTC

This package is not auto-updated.

Last update: 2024-09-23 06:50:22 UTC


README

一个用于过滤访问您路由的IP地址的轻量级中间件。它内部使用 Ip 验证器 Respect/Validationrka-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

致谢