Net::CIDR::range2cidr
function。我在Google找到了一些解决方案:
['10.0.0.0', '10.255.255.255']
)"192.168.1.15/24"
)(也许,我错过了PHP中的现有功能吗?)
答案 0 :(得分:1)
使用s1lentium/iptools composer包解决它。 以下代码:
/**
* Perl's "Net::CIDR::range2cidr()" function.
*
* @param string $from
* @param string $to
*
* @return array
*/
function range2cidr($from, $to) {
$networks = IPTools\Range::parse("{$from}-{$to}")->getNetworks();
return array_map(function(IPTools\Network $network) {
return (string)$network;
}, $networks);
}
/**
* @param string $cidr
*
* @return array
*/
function cidr2range($cidr) {
/** @var IPTools\Range $range */
$range = IPTools\Network::parse($cidr)->hosts;
return [
(string)$range->getFirstIP(),
(string)$range->getLastIP(),
];
}