『IPv4アドレスのマスクの変換』投稿
『どう書く?.org』への投稿
お題:IPv4アドレスのマスクの変換
ようするに、「255.255.255.128」を「25」にしたり、「24」を「255.255.255.0」にしてくださいという問題。
特に面白い事はしていない。
function mask2bits($ddn_str)
{
$bits = 0;
$decs = explode(‘.’, $ddn_str);
foreach ( $decs as $dec ) {
$bits += substr_count(decbin($dec), ‘1’);
}
return $bits;
}
function bits2mask($bits)
{
$bits_str = strrev(sprintf(‘%032s’, str_repeat(“1”, $bits)));
$bins = str_split($bits_str, 8);
foreach ($bins as $bin) {
$decs[] = bindec($bin);
}
return implode(‘.’, $decs);
}
投稿: