Автор Тема: Помогите разобраться с пингом  (Прочитано 3054 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн StealtH2606

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 3
  • +0/-0
  • 0
    • Просмотр профиля
    • http://stealth2606.narod.ru
Помогите разобраться с пингом
« : 26 Сентября 2004, 15:24:33 »
Вообщем такая ситуевина, нужно пинговать несколько определенных хостов в сети.

Есть код:


if(&ping($host)){
print "Yes\\n";
}else{
  print "No\\n";}


sub ping($host)
{
use Net::Ping;
 $p=Net::Ping->new();
 $p->hires();
 ($ret, $duration, $ip) = $p->ping($host, 5.5);
  if($ret)
  {
   for ($i=0;$i<=$num_times;$i++)
   {
    $p->hires();
    ($ret, $duration, $ip) = $p->ping($host, 5.5);
    $ping_time+=$duration;
   }
   $ping_time=$ping_time/$i;
   $p->close();
   return 1;
  }else {
   $p->close();
   return 0;
}

так вот при $host=\'реально существующий хост\' функция возвращает 0, в обратном случае тоже самое.
Второй вопрос:
при ответе пингуемого хоста время пинга $ping_time имеет очень жуткие значения, т.е. в 3-5 раз больше чем при пинге системной командой.

Помогите плиз, люди добрые, может где-то ошибочка или недоглядел чего.

И еще вопрос :), как с помощью перла определить тип прокси сервера(SOCKS4, SOCKS4a, SOCKS5), буду сильно признателен если подкините кусочек кода или ссылку на литературу :D

Оффлайн VVP

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 1
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Помогите разобраться с пингом
« Ответ #1 : 19 Июля 2006, 11:28:10 »
Уважаемый StealtH. Я проанализировал приведенный код. Вообще-то все правильно.
Ну не может эта функция возвращать 0 при существующем хосте. Возможно этот хост недоступен. Не забудьте проинициализировать переменную $num_times=... А время пинга завышено скорее всего из-за, что
Net::Ping->new([$proto [, $def_timeout [, $bytes]]]);

Create a new ping object. All of the parameters are optional. $proto specifies the protocol to use when doing a ping. The current choices are ``tcp\'\', ``udp\'\' or ``icmp\'\'. The default is ``udp\'\'.

Попробуй изменить new(icmp,1.5). Должен шустрить быстрее

Оффлайн arto

  • Ветеран
  • *****
  • Сообщений: 699
  • +0/-0
  • 2
    • Просмотр профиля
Помогите разобраться с пингом
« Ответ #2 : 19 Июля 2006, 12:00:42 »
With the "tcp" protocol the ping() method attempts to establish a connection to the remote
host\'s echo port.  If the connection is successfully established, the remote host is considered reachable.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28