sub my_inet_aton { my ($string) = @_; my ($a, $b, $c, $d) = split(/\./, $string); return ( ($a << 24) + ($b << 16) + ($c << 8) + ($d) ); } sub my_inet_ntoa { my ($ip) = @_; return ( (($ip & 0xFF000000) >> 24) . '.' . (($ip & 0xFF0000) >> 16) . '.' . (($ip & 0xFF00) >> 8) . '.' . ($ip & 0xFF) ); } #### my $ipstring = '192.168.190.128'; my $maskstring = '255.255.255.0'; my $ip = my_inet_aton($ipstring); my $mask = my_inet_aton($maskstring); my $subnet = $ip & $mask; print "Subnet portion of ", $ipstring, "/", $maskstring, " is ", my_inet_ntoa($subnet), "\n";