dtr / ip
PHP 的 IPv4/v6 辅助工具套件
dev-master / 2.2.5.x-dev
2021-04-25 22:05 UTC
Requires
- php: >=5.1
Requires (Dev)
- phpunit/phpunit: ^5.6
This package is not auto-updated.
Last update: 2024-09-19 00:24:20 UTC
README
PHP 的 IPv4/v6 辅助工具套件
用法
此类同时考虑了 IPv6(扩展和压缩)和 IPv4 地址。
您可以通过以下两种方式之一通过 IP 和 CIDR 掩码创建该类
$net = new dTRIP("fe80:dead:15:a:bad:1dea:11:2234/93");
// or
$net = new dTRIP("fe80:dead:15:a:bad:1dea:11:2234", 93);
然后您可以访问网络的不同方面
$net->getIP(); // returns IP
$net->getCIDR(); // returns CIDR
$net->getNetwork() // return Network ID
$net->getBroadcast() // return Broadcast ID
存在一个 __toString()
方法,它将在类对象上返回一个 JSON 编码的字符串
echo new dTRIP("fe80:dead:15:a:bad:1dea::/65");
上面的代码将返回
{
"ip":"fe80:dead:15:a:bad:1dea::",
"cidr":"65",
"netmask":"ffff:ffff:ffff:ffff:8000::",
"network":"fe80:dead:15:a::",
"broadcast":"fe80:dead:15:a:7fff:ffff:ffff:ffff"
}
示例
以下是一些示例
ipv4
$net = new dTRIP("10.22.99.199", 28);
echo $net->getNetwork(); // 10.22.99.192
ipv6
$net = new dTRIP("fe80:dead:15:a:bad:1dea:11:2234", 93);
$net->getNetwork(); // fe80:dead:15:a:bad:1de8::
$net->getBroadcast(); // fe80:dead:15:a:bad:1def:ffff:ffff
注意
尽管 IPv6 不使用网络和广播的概念,但范围仍然需要执行包含性搜索。此外,IPv6 有子网段,但仍可以进行超网/子网划分,这一点也得到了考虑。