jalle19 / php-whitelist-check
提供一个简单的方法来检查一个地址或域名是否在白名单上
1.2.0
2023-08-31 11:57 UTC
Requires
- php: >=5.5.2
- jycr753/ip-utils: ^2.0.1 | ^3.0.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的测试用例足够充分,这就是为什么对此库中的这些函数只进行了简单的测试。