use strict; use Net::IP; while (){ chomp; generate_range($_); } sub generate_range{ my $range =shift; $range =~s/#.*//; print "\n------ $range -------\n"; my ($lo,$hi); for (split /\./,$range,4){ my ($l,$h) = split /-/; ## print qq[ $_; L=$l H=$h\n] ; $lo .= "$l."; $hi .= ($h || $l ) . "."; } chop for ($lo, $hi); # Drop tralining dots print " $lo - $hi; \n"; my $ip = new Net::IP ("$lo - $hi") || die "No IP$!"; print ( "Number of IPs=" . $ip->size() . "\n"); my $count=0; do { print $ip->ip(), "\t"; } while (++$ip && $count++ <= 20); print "\n"; } __DATA__ 172.17.119.2 # Comments are here... 172.17.119.4-5 # Comments are here... 172.19-21.254.2-3 # Comments are here... 192.168.1.1-3 # Comments are here...