52 lines
714 B
Markdown
52 lines
714 B
Markdown
# Codesnippets
|
|
|
|
## PHP
|
|
|
|
### IPV4 --> CIDR
|
|
|
|
```php
|
|
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
|
|
|
|
```php
|
|
function subnetMaskToCidr(string $mask): int
|
|
{
|
|
$octets = explode('.', $mask);
|
|
$cidr = 0;
|
|
|
|
foreach ($octets as $octet) {
|
|
while ($octet > 0) {
|
|
$cidr++;
|
|
$octet &= $octet - 1;
|
|
}
|
|
}
|
|
|
|
return $cidr;
|
|
|
|
}
|
|
```
|
|
|
|
|