chialab/

ip

最小化的库,用于管理IP地址、子网、子网掩码等。

v1.0.0 2022-11-21 13:15 UTC

README

Run tests codecov

此库为PHP 7.4+版本提供对互联网协议版本、地址和CIDR块管理的抽象。

使用此库可以轻松检查一个IP地址是否属于某个子网。

安装

可以使用Composer安装此库

$ composer require chialab/ip

用法

use Chialab\Ip;

$address = Ip\Address::parse('192.168.1.1');
var_dump($address->getProtocolVersion() === Ip\ProtocolVersion::ipv4()); // bool(true)
var_dump($address->getProtocolVersion() === Ip\ProtocolVersion::ipv6()); // bool(false)

$subnet = Ip\Subnet::parse('fec0::1/16');
var_dump((string)$subnet->getFirstAddress()); // string(6): "fec0::"
var_dump((string)$subnet->getNetmask()); // string(6) "ffff::"
var_dump($subnet->contains($address)); // bool(false)
var_dump($subnet->contains(Ip\Address::parse('fec0:fe08:0123:4567:89ab:cdef:1234:5678'))); // bool(true)
var_dump($subnet->hasSubnet(Ip\Subnet::parse('fec0:fe08::/32'))); // bool(true)