my @range = map { unpack "N", pack "C4", split /\./ } ($ARGV[0], $ARGV[1]); print "@range\n"; # the numbers themselves print $range[1]-$range[0]+1, "\n"; # how many addresses for (my $i = $range[0]; $i <= $range[1]; $i++) { print join(".", unpack "C4", pack "N", $i), "\n"; }