我正在寻找快速/简单的方法来匹配给定的IP4点分四核IP到CIDR表示法掩码.
我有一堆IP,我需要看看它们是否匹配一系列IP.
例:
$ips = array('10.2.1.100', '10.2.1.101', '10.5.1.100', '1.2.3.4');
foreach ($ips as $IP) {
if (cidr_match($IP, '10.2.0.0/16') == true) {
print "you're in the 10.2 subnet\n";
}
}
Run Code Online (Sandbox Code Playgroud)
会是什么cidr_match()模样?
它并不一定非常简单,但快速会很好.任何只使用内置/通用功能的东西都是奖励(因为我很可能会让一个人向我展示梨的东西,但是我不能依赖梨或者我的代码所在的地方安装的包部署).
我正在寻找将cidr前缀(例如/ 28)转换为网络掩码(例如255.255.255.240)并且没有为此定位函数,PHP中是否存在?如果没有,我该怎么做呢?
我在这个网站上看到了各种各样的问题和答案,我仍然很难解决这个问题(可能是因为我感冒了).无论如何,我正试图想出一个小型的网络应用程序,它将为我们的每个办公室创建IP地址表.
就像说如果我为10.1.10.0/4创建一个新的范围,它将创建一个数组(我可以打印到表中):
10.1.10.0 network ID
10.1.10.1 gateway
10.1.10.2 usable
10.1.10.3 broadcast
Run Code Online (Sandbox Code Playgroud)
(并不是说它会自动插入描述,但这就是我们要做的事情).
我很确定我将使用ip2long/long2ip将地址存储为整数但仍然如此.