Страница 1 из 1

ping на FreeBSD

Добавлено: Чт окт 20, 2016 11:15 pm
Ged
Не мог понять, почему не стабильно себя ведет модуль pinghosts.
Выяснилось, что в lib/general.class.php в функции function ping($host)
нужно поменять строчку

Код: Выделить всё

ping -c 1 -w 5
на

Код: Выделить всё

ping -c 1 -t 5
Поменяйте, пожалуйста, функцию на

Код: Выделить всё

function ping($host)
{
   if (IsWindowsOS())
      exec(sprintf('ping -n 1 %s', escapeshellarg($host)), $res, $rval);
   elseif (substr(php_uname(), 0, 7) === "FreeBSD")
        exec(sprintf('ping -c 1 -t 5 %s', escapeshellarg($host)), $res, $rval);
   else
      exec(sprintf('ping -c 1 -W 5 %s', escapeshellarg($host)), $res, $rval);

   return $rval === 0 && preg_match('/ttl/is', join('', $res));
}
Т.е. добавьте проверку системы на FreeBSD

Код: Выделить всё

elseif (substr(php_uname(), 0, 7) === "FreeBSD")
        exec(sprintf('ping -c 1 -t 5 %s', escapeshellarg($host)), $res, $rval);
Надеюсь, что все правильно и внятно написал.

P.S. во FreeBSD -W таймаут в миллисекундах.

Re: ping на FreeBSD

Добавлено: Пт окт 21, 2016 1:14 pm
sergejey
Ага, спасибо, добавлю.