714 B
714 B
Codesnippets
PHP
IPV4 --> CIDR
function subnetMaskToCidr(string $mask): int
{
$long = ip2long($mask);
if ($long === false) {
throw new InvalidArgumentException("Ungültige Subnetzmaske");
}
$cidr = 0;
for ($i = 31; $i >= 0; $i--) {
if (($long & (1 << $i)) !== 0) {
$cidr++;
} else {
break;
}
}
return $cidr;
}
oder
function subnetMaskToCidr(string $mask): int
{
$octets = explode('.', $mask);
$cidr = 0;
foreach ($octets as $octet) {
while ($octet > 0) {
$cidr++;
$octet &= $octet - 1;
}
}
return $cidr;
}