etchfoda / php-whitelist-check
提供了一种简单的方法来检查地址或域名是否在白名单中
1.0.9
2020-08-19 22:01 UTC
Requires
- php: >=5.3.0
- etchfoda/ip-utils: ~1.1.0
Requires (Dev)
- phpunit/phpunit: ^4.8
README
php-whitelist-check
一种现代且简单的方法,用于验证IP地址和域名是否在白名单中。它支持IPv4和IPv6地址以及CIDR子网,除域名和通配符域名外。
要求
- PHP 5.3或更高版本
用法
Check::whitelist() 方法接受一个定义数组,该数组将构成白名单。定义可以是字符串(将被解析为其相应的对象)或对象。
Check::check($value) 方法用于将指定的值与当前白名单进行比较。如果值与任何定义匹配,则方法将返回 true。
要创建自己的定义类,只需扩展 Whitelist\Definition\Definition 并实现 Whitelist\Definition\IDefinition
示例用法
require_once("vendor/autoload.php"); $checker = new Whitelist\Check(); try { $checker->whitelist(array( '10.0.3.1', '10.0.0.0/16', '2001:db8:100:934b::3:1', '2001:db8:100:934b::/64', '*.example.com', 'localhost', new Whitelist\Definition\Domain('vpn.work.com'), )); } catch (InvalidArgumentException $e) { // thrown when an invalid definition is encountered } $checker->check('10.0.1.1'); // true $checker->check('10.1.1.1'); // false $checker->check('2001:db8:100:934b::210:2'); // true $checker->check('another.example.com'); // true
许可证
本库使用 BSD 2-Clause 许可证授权
致谢
此库依赖于 xrstf/ip-utils 以提供IP相关功能。它还假设ip-utils的测试用例是充分的,这就是为什么此库对这些函数只进行了简单的测试。