RE: Script Required to Check a range of IP's





-----Original Message-----
From: Mazhar [mailto:syedmazhar.hasan@xxxxxxxxx]
Sent: Thursday, June 29, 2006 12:51 PM
To: Ryan Frantz
Cc: Perl Beginners
Subject: Re: Script Required to Check a range of IP's


On 6/29/06, Ryan Frantz <ryanfrantz@xxxxxxxxxxxxxxxx> wrote:


-----Original Message-----
From: Mazhar [mailto:syedmazhar.hasan@xxxxxxxxx]
Sent: Thursday, June 29, 2006 11:44 AM
To: Perl Beginners
Subject: Script Required to Check a range of IP's

Hi Folks,


Howdy,

I have a requirement of writing down a script to check the range of
IP's
in
a text file and display them which all are active and not active.

I have written down the below and needs your help because it is not
giving
me the correct ouptut.

################################################################
#!/usr/bin/perl

use strict;
use warnings;
use Net::Ping;

my $file_name=$ARGV[0];

You may want to check that an argument exists before proceeding.

unless ( $ARGV[0] ) {
print "No arg!\n";
exit;
}

my $line;

You don't see to use this scalar; you can remove it.

my @host_array;

open(FILE,"$file_name") || die "Not been Accessed";

On failure, '$!' gets set. Make sure you check for it:

open( FILE, "$file_name" ) or die "Problem opening file: $!\n";


To be of more help, I'd suggest that you provide some example input.  Is
there one address per line?  Multiple addresses per line (delimited).


while (<FILE>) {
   chomp;
   @host_array=$_;
}


Since you have multiple IP addresses, you need to push them into the list or else the array will only have one element.

while ( <FILE> ) {
chomp;
push @host_array, $_;
}

Also, if it were me, I'd close the file here just to be clean.

If we have some example input, then we can tell if the 'while' block is
kosher.  If there are multiple IP addresses, then you'll want to 'push'
the addresses into @host_array.

ry

my $p = Net::Ping->new();
foreach my $host (@host_array)
     {
         print "$host is ";
         print "NOT " unless $p->ping($host, 2);
         print "reachable.\n";
         sleep(1);
     }
$p->close();

close (FILE);

###########################################################

Needs your help on the above

Regards
Mazhar

--
To unsubscribe, e-mail: beginners-unsubscribe@xxxxxxxx
For additional commands, e-mail: beginners-help@xxxxxxxx
<http://learn.perl.org/> <http://learn.perl.org/first-response>


I am giving you all the sample input file...

11.1.1.1
111.1.1.1
1.111.1.1
1.1.2.3

All the above IP's are in a new line..
.



Relevant Pages