Net::Ping has serveral Bugs and is not threatsafe. I posted a fix here
and asked for help to fix and upload to cpan...  There is an error in
setting up the dataframe and an error in building the identification
number.

Use net-ping-external or use Backticks and ping.

If you just read a logfile, lets say with file-tail, just use a RegEx.
While...{ if ($line =~ m/unreachable/){print "down!\n"}; 
...}

-----Ursprüngliche Nachricht-----
Von: Chas Owens [mailto:[EMAIL PROTECTED] 
Gesendet: Freitag, 31. August 2007 15:21
An: Rodrigo Tavares
Cc: beginners@perl.org
Betreff: Re: Open files and looking a word


On 8/31/07, Rodrigo Tavares <[EMAIL PROTECTED]> wrote:
> Hello,
>
> I'm doing a script, it run a ping in many computers
> and  create a log file.
>
> I need search in log file the word "Destination Host Unreachable". So,
> I have to take below line. After using regular expressions taking 
> ferrari.lab and print "The host is down !".
>
> example:
> PING ferrari.lab (192.168.1.152) 56(84) bytes of data.
> From goal.lab (192.168.1.7) icmp_seq=2 Destination
> Host Unreachable
>
> How I do it ?
>
> Begin of script, wih array with host names:
>
> print "Testing the computers....\n";
> for (my $i=0 ; $i < 5 ; $i++)
>  {
>    system "ping -c 4 $hosts[$i] >> hosts.txt";
>  }
>

Snip if you have an array of hosts then you should say

for my $host (@host) {
    system "ping -c 4 $hosts >> hosts.txt";
}

instead, but really, you shouldn't even be using system:

#!/usr/bin/perl

use strict;
use warnings;

use Net::Ping;

my @hosts = @ARGV;
my $pinger = Net::Ping->new;

for my $host (@host) {
    print "$host is down\n" unless $pinger->ping($host);
}

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/




--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to