wikimedia/ip-utils

解析、匹配和分析IP地址和CIDR范围

5.0.0 2023-09-28 00:40 UTC

This package is auto-updated.

Last update: 2024-09-12 06:01:09 UTC


README

Packagist

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.7r15572)的一部分。它在MediaWiki 1.34开发周期中被分离出来,并作为一个独立的库发布。

IPSet类由Brandon Black于2014年创建,作为IPUtils::isInRange()(MediaWiki 1.24,change 131758)的更快替代品。它在change 221179change 218384)开发周期中被移动到库中。