grntartaglia / netmask
解析和查找IP网络块
v1.0
2016-01-20 13:31 UTC
Requires
- php: >=5.3.0
Requires (Dev)
- phpunit/phpunit: ^4.8
This package is not auto-updated.
Last update: 2024-09-28 18:53:12 UTC
README
Netmask类解析并理解IPv4 CIDR块,以便它们可以探索和比较。此模块高度受node-netmask模块的启发。
翻译
安装
$ composer require grntartaglia/netmask
摘要
$block = new Netmask\Netmask('192.168.0.1/24'); $block->base; // 192.168.0.0 $block->mask; // 255.255.255.0 $block->bitmask; // 24 $block->hostmask; // 0.0.0.255 $block->broadcast; // 192.168.0.255 $block->size; // 256 $block->first; // 192.168.0.1 $block->last; // 192.168.0.254 $block->contains('192.168.0.7/24'); // true $block->contains('192.168.0.126'); // true $block->contains('192.168.1.1'); // false // ['192.168.0.1', '192.168.0.2', '192.168.0.3', ...] $block->getAll(); foreach ($block->getAll() as $ip) { // IP: 192.168.0.x }
构建
Netmask对象使用IP地址和可选的掩码创建。有许多形式被识别
new Netmask('192.168.0.1/24'); // The preferred form. new Netmask('192.168.0.1'); // A /32 block. new Netmask('192.168.0.1/255.255.255.0');
API
->base
: 网络块的基本地址作为字符串(例如:216.240.32.0)。基本地址不提供网络块大小的指示。->mask
: 网络掩码作为字符串(例如:255.255.255.0)。->hostmask
: 主机掩码是网络掩码的相反数(例如:0.0.0.255)。->bitmask
: 网络掩码作为地址网络部分的位数(例如:24)。->size
: 块中IP地址的数量(例如:256)。->broadcast
: 块的广播地址(例如:192.168.1.0/24 => 192.168.1.255)->first
,->last
: 首个和最后一个可用的地址->contains($ip or $block)
: 如果IP号$ip
是网络的一部分,则返回true。也就是说,如果$ip
在$base
和$broadcast
之间,则返回true。如果给出Netmask对象或块,则只有在给定的块适合网络内部时才返回true。->getAll()
: 返回一个包含所有可用地址的数组,即在$first
和$last
之间。->__toString()
: 网络掩码以基础/位数组格式表示(例如,'216.240.32.0/24')
许可证
(MIT许可证)
版权 (c) 2016 Gabriel Tartaglia gabriel@cappu.com.br
特此授予任何获得本软件及其相关文档文件(以下简称“软件”)副本的任何人免费使用软件的权利,不受任何限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许向软件提供的人这样做,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定目的和无侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任承担责任,无论此类责任是基于合同、侵权或其他方式,源于、因或与软件或软件的使用或其他方式相关。