URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 18216
[ Назад ]

Исходное сообщение
"таймаут на ping"

Отправлено NextAngel , 28-Июн-02 09:07 
Была поставлена задача на перле написать скриптик который пингует 2-е подсети класса С (т.е. в сумме 512 :) IP адесов) и производит анализ по веткам и выдает результат. Казалось бы все просто...
...
my $ippath = "/home/den/scripts/ipping/";
my $ipname = "ip.24";
my $logname = "ip.log";

my $path2ip = "$ippath$ipname";
my $path2log = "$ippath$logname";

my ($ip3, $loop_ind, $pingstr);
my $timesec = time;

unlink $path2log;
open (IP, "< $path2ip");
open (LOG, ">> $path2log");

while (<IP>) {
    chomp ($_);
    $ip3=$_;
    for ($loop_ind=0; $loop_ind<=255; $loop_ind++) {
        $pingstr="ping -s 32 -qnc 1 -q "."$ip3".".$loop_ind".">/dev/null";
        my $rez = system ("$pingstr");
        if ($rez == 0) {
            print LOG "$ip3".".$loop_ind"."     1\n";
            print "$ip3".".$loop_ind"." 1\n";

        } else {
            print LOG "$ip3".".$loop_ind"."     0\n";
            print "$ip3".".$loop_ind"." 0\n";
        }
...
т.е. пингуем 1 пакетом в 32 байта определенный IP и делаем вывод жив он или нет... вот тут и начинается :)) когда хост "жив" все ок пинг проходит очень быстро! ну а когда не отвечает проходит ~3 секунды пока не наступит таймаут и пинг не поймет что хоста нет... вот как бы уменьшить время таймаута примерно до 500 милесекунт? кто знает?
man ping не предлагать! :))) начитался уже


Содержание

Сообщения в этом обсуждении
"RE: таймаут на ping"
Отправлено avk , 29-Июн-02 00:55 
ping -w 1 ...
для 1 с.
меньше секунды - сори..