Лучший способ пинговать клиента - PullRequest
1 голос
/ 16 мая 2011

Да, у меня есть PHP-скрипт на работе, где пинг сервера является клиентом.Проблема, с которой я сталкиваюсь, заключается в том, что иногда сервер не может связаться с клиентом, хотя, когда я вручную проверяю клиента, он успешно проверяет связь.

Команда ping, которую я использую, такова: ping -q -w 3 -c 1 < ipaddresshere >

Каков наилучший способ пинговать клиентов, может быть 2/3 раза , оставляя как 2/3 второго разрыва если проверка не прошла до повторной попытки?

Ответы [ 2 ]

1 голос
/ 18 мая 2011

Поскольку вы находитесь в среде Unix, вы всегда можете создать, а затем вызвать скрипт оболочки для обработки циклов и ожидания.Но я удивлен, что вы не можете сделать это внутри php.

Кроме того, я не уверен в вашей пробной команде ping, у двух разных сред, которые я проверял, кажется, есть разные значения для опций, которые выупомянуть, чем вы, кажется, намерены.Попробуйте man ping ИЛИ ping --help

Сценарий ниже должен дать вам основу для реализации ping-повтора, но я не могу тратить на это много времени.

cat pingCheck.sh

#! /bin/bash -vx

IPaddr=$1

: ${maxPingTries:=3}
echo "maxPingTries=${maxPingTries}"

pingTries=0
while ${keepTryingToPing:-true} ; do
  if ping -n 3 -r 1 ${IPaddr} ;then
    keepTryingToPing=false
  else
    sleep ${sleepSecs:-3}
    if (( ++pingTries >= maxPingTries )) ; then
      printf "Execeeded count on ping attempts = ${maxPingTries}\n" 1>&2
      keepTryingToPing=false
    fi
  fi

done

Надеюсь, это поможет.

PS, поскольку вы, кажется, являетесь новым пользователем, если вы получите ответ, который поможет вам, не забудьте пометить его как принятый и / или дать ему + (или -) какполезный ответ.

0 голосов
/ 08 июля 2011

для php, вы можете попробовать пакет PE_ Net_PING.

вот ссылка, которая проведет вас по нему http://www.codediesel.com/php/ping-a-server-using-php/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...