luzrain / ipcalc
PHP的IPv4/IPv6网络计算器
1.0.3
2019-02-12 19:55 UTC
Requires
- php: >=5.1
This package is auto-updated.
Last update: 2024-09-15 15:20:59 UTC
README
安装
使用composer安装
composer require "luzrain/ipcalc:~1.0.0"
基本用法
此类同时考虑了IPv6和IPv4地址。您可以通过以下两种方式创建此类:传递一个IP和CIDR掩码
require 'vendor/autoload.php';
$net = new IPCalc\IP('fe80:dead:15:a:bad:1dea:11:2234/93');
// or
$net = new IPCalc\IP('fe80:dead:15:a:bad:1dea:11:2234', 93);
然后您可以访问网络的不同方面
$net->getVersion(); // 6 # IP version
$net->getIp(); // fe80:dead:15:a:bad:1dea:11:2234 # Actual IP address
$net->getCidr() // 93 # Cidr prefix
$net->getNetmask() // ffff:ffff:ffff:ffff:ffff:fff8:: # Netmask in printable format
$net->getNetwork() // fe80:dead:15:a:bad:1de8:: # Address of current IP network (for ipv4)
$net->getBroadcast() // fe80:dead:15:a:bad:1def:ffff:ffff # Broadcast address of network (for ipv4)
$net->getHostMin() // fe80:dead:15:a:bad:1de8:: # First IP adress
$net->getHostMax() // fe80:dead:15:a:bad:1def:ffff:ffff # Last IP adress
有一个__toString()
方法,它将在类对象上返回一个JSON编码的字符串
echo new IPCalc\IP('192.168.1.10/24');
上面的代码将返回
{
"version":4,
"ip":"192.168.1.10",
"cidr":24,
"netmask":"255.255.255.0",
"network":"192.168.1.0",
"broadcast":"192.168.1.255",
"hostmin":"192.168.1.1",
"hostmax":"192.168.1.254"
}
备注
尽管IPv6不使用网络和广播的概念,但仍需要这些范围来进行包含性搜索。此外,IPv6有一个子网段,但仍可以进行超网/子网划分,这也被考虑在内。