『IPv4アドレスのマスクの変換』投稿

どう書く?.org』への投稿

お題:IPv4アドレスのマスクの変換

http://ja.doukaku.org/253/

ようするに、「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);  
}

投稿:

http://ja.doukaku.org/comment/9339/