Files
Snippets/Codesnippets.md
T
2026-09-06 09:46:18 +02:00

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;

}