use Socket; sub next_subnet { my ($network, $subnet) = @_; my $inet = unpack('N', inet_aton($network)); my $mask = unpack('N', inet_aton($netmask)); my $ones = unpack('N', inet_aton('255.255.255.255')); my $size = ($ones ^ $mask) + 1; my $next = $inet + $size; return inet_ntoa(pack('N', $next)); } #### sub prefix_to_mask { my ($bits) = @_; return inet_ntoa(pack('N', (2**32) - (2**(32-$bits)))); }