有没有办法(或函数/类)从 CIDR 表示法获取 IP 地址列表?
例如,我有 73.35.143.32/27 CIDR,并且想要获取此表示法中的所有 IP 的列表。有什么建议么?
谢谢。
我将编辑前述 https://stackoverflow.com/questions/4931721/getting-list-ips-from-cidr-notation-in-php/4931756#4931756 class https://gist.github.com/jonavon/2028872包含一个方法。这是我想出的代码,在那之前可能会对您有所帮助。
function cidrToRange($cidr) {
$range = array();
$cidr = explode('/', $cidr);
$range[0] = long2ip((ip2long($cidr[0])) & ((-1 << (32 - (int)$cidr[1]))));
$range[1] = long2ip((ip2long($range[0])) + pow(2, (32 - (int)$cidr[1])) - 1);
return $range;
}
var_dump(cidrToRange("73.35.143.32/27"));
//////////////////OUTPUT////////////////////////
// array(2) {
// [0]=>
// string(12) "73.35.143.32"
// [1]=>
// string(12) "73.35.143.63"
// }
/////////////////////////////////////////////////
返回 ip 范围的低端作为数组中的第一个条目,然后返回高端作为第二个条目。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)