Net::Ping выдает разные результаты в FreeBSD и Linux (perl)

Модератор: Модераторы разделов

RealSwift
Сообщения: 2

Net::Ping выдает разные результаты в FreeBSD и Linux (perl)

Сообщение RealSwift »

Есть 2 сервера
FreeBSD 7
Linux Centos

Есть Perl-скрипт многопоточного пингования машин в локальной сети (около 3000).
Пинг организован через Net::Ping
В результате - на машине с FreeBSD все работает как положено, а на машине с Linux срипт практически все машины считает активными.

Грубо говоря - net::ping при работе выдает - либо 0 либо 1 (нет пинга на компьютер или есть).

Так вот - в Линуксе на 95% машин - выдает 1 - т.е. компьютер включен - но это не так.

Какие есть соображения?
Спасибо!
Спасибо сказали:
svary
Сообщения: 49
ОС: Linux FC-9

Re: Net::Ping выдает разные результаты в FreeBSD и Linux (perl)

Сообщение svary »

RealSwift писал(а):
16.07.2009 20:05
Так вот - в Линуксе на 95% машин - выдает 1 - т.е. компьютер включен - но это не так.

А из командной строки ping что говорит ? И еще - какие могут быть соображения, если исходного текста нет ?!
Тот кусочек, где вызов пинга делается и анализируется результат...
Спасибо сказали:
RealSwift
Сообщения: 2

Re: Net::Ping выдает разные результаты в FreeBSD и Linux (perl)

Сообщение RealSwift »

Код функции пинга:

sub Ping_it{
my ($work_count, $miss_count);
my $t = shift;
my $pinger = Net::Ping->new();

while (my $target = $RequestQ->dequeue){
$work_count ++;
my $retval = 0;
$verbose and print "Child $target started\n";
$pr1=$pinger->ping($target);
if($pr1) {
# PING! Throw it in the FIFO
$verbose and print "Found $target!\n";
$retval=1
}
else {
#warn "Thread $t $target: $!\n";
$verbose and print "No response from $target\n";
$retval=0;
$miss_count++;
}

$ResultQ->enqueue(formatdatetime("YYYY-MM-DD hh:mm:ss", time).'|'.$target . "=" . $retval);
threads->yield();
$verbose and print "Child $target exiting\n";
}
$pinger->close();
$ResultQ->enqueue("Thread $t processed $work_count, missed $miss_count");

}

Из командной строки ping не пингует выключенные машины.
Спасибо сказали:
Аватара пользователя
isvroot
Сообщения: 31
ОС: Windows Vista

Re: Net::Ping выдает разные результаты в FreeBSD и Linux (perl)

Сообщение isvroot »

У себя в сети недавно организовывал проверку айпишников с помощью Perl NET::Ping on Debian Lenny 5,0 , все работает коректно:
Вот цыкл который печатает айпшник если он пингуется, если не пингуется, то не печатает.

................
for ($ip=1;$ip<256;$ip++){
my $alive = ping(host => "172.228.160.$ip");
print ONLI "\192.168.1.$ip" if $alive;
$No++ if $alive;};

......................
Windows жжёт
Спасибо сказали: