# This function takes a number in paramater (eg 24) and # returns the corresponding mask in longer format # (eg 255.255.0.0) sub mask_short_to_long { my $short_mask = shift; my ($bin, $num, @mask); $bin = "1" x $short_mask . "0" x (32 - $short_mask); for my $i (0..31) { $num += substr($bin,31 - $i,1) * (2 ** $i); } for my $i (0..3) { unshift @mask, (($num >> ($i * 8)) & 0xFF); } return join('.',@mask); }