Ich würde dafür eher eine echte Scriptsprache benutzen wie Perl oä.
Etwa so könnte es aussehen:
#!/usr/bin/perl -w
use strict;
use Net::Ping;
my $ip = shift @ARGV or die "no param";
my @range = split(/\./, $ip);
my $end = shift(@ARGV) || $range[3];
my $end += 1;
my @alive;
my @unused;
while ($range[3] < $end )
{
$ip = join '.', @range;
my $ping = Net::Ping->new( "icmp", 1, 64 );
if ( $ping->ping($ip) ) {
push(@alive,$ip);
} else {
push(@unused,$ip);
}
$range[3]++:
}
print "Online sind: @alive";
print "\nFrei sind: @unused";
exit 0;
(UNGETESTET)