wikimedia / ip-utils
解析、匹配和分析IP地址和CIDR范围
5.0.0
2023-09-28 00:40 UTC
Requires
- php: >=7.4.3
- wikimedia/base-convert: ^2.0.0
Requires (Dev)
- mediawiki/mediawiki-codesniffer: 41.0.0
- mediawiki/mediawiki-phan-config: 0.13.0
- mediawiki/minus-x: 1.1.1
- ockcyp/covers-validator: 1.6.0
- php-parallel-lint/php-console-highlighter: 1.0.0
- php-parallel-lint/php-parallel-lint: 1.3.2
- phpunit/phpunit: 9.5.28
README
IPUtils
解析、匹配和分析IP地址和CIDR范围。此库支持IPv4和IPv6。
有关库的更多文档可以在mediawiki.org上找到。
用法
use Wikimedia\IPUtils; IPUtils::isIPAddress( '::1' ); IPUtils::isIPv4( '124.24.52.13' );
IPSet
比调用多个CIDR规范中的IPUtils::isInRange()
快100倍以上。
use Wikimedia\IPSet; // This will calculate an optimized data structure for the set $ipset = new IPSet( [ '208.80.154.0/26', '2620:0:861:1::/64', '10.64.0.0/22', ] ); // Run fast checks against the same re-usable IPSet object if ( $ipset->match( $ip ) ) { // ... }
运行测试
composer install --prefer-dist
composer test
历史
IPUtils类始于2006年,作为MediaWiki 1.7(r15572)的一部分。它在MediaWiki 1.34开发周期中被分离出来,并作为一个独立的库发布。
IPSet类由Brandon Black于2014年创建,作为IPUtils::isInRange()
(MediaWiki 1.24,change 131758)的更快替代品。它在change 221179,change 218384)开发周期中被移动到库中。