in reply to list of ips in a given subnet

There are lots of ways of doing that. First take a look at: this info about CIDR blocks.

sub range_from_net { my ($subnet,$mask)=@_; my $subbits=addr2bits($subnet); my $maskbits=addr2bits($mask); my $allones = ~ $maskbits; my $top = $allones - 1; my $bottom = ($subbits + 1) & $allones; return ($bottom,$top); } sub addr2bits { my $ip=shift; my @o=split([\.],$ip); return ( ($o[0] << 24 ) + ($o[1] << 16) + ($o[2]<<8) + $o[3]); } sub bits2addr { my $bits=shift; return sprintf("%d.%d.%d.%d", (($bits & 0xff000000 ) >> 24), (($bits & 0x00ff0000 ) >> 16), (($bits & 0x0000ff00 ) >> 8), ($bits & 0x000000ff ) ); }
There may be a few bugs in the above code as I did not test it, but there is the basic overall algorithm I have used when I have had to solve the problem.


Peter L. Berghold -- Unix Professional
Peter at Berghold dot Net
   Dog trainer, dog agility exhibitor, brewer of fine Belgian style ales. Happiness is a warm, tired, contented dog curled up at your side and a good Belgian ale in your chalice.