Лучший способ пинговать клиента

1

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

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

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

Теги:
network-programming

2 ответа

1
Лучший ответ

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

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

Ниже приведено script ниже, чтобы предоставить вам рамки для реализации ping-retry, но я не могу тратить на него много времени.

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

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

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

  • 0
    Говорит upvote требует 15 повторений, отличный ответ, большое спасибо. Я буду голосовать, когда я получу 15 повторений.
  • 0
    Это было давно, я за него проголосовал. :)
Показать ещё 1 комментарий
0

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

вот ссылка, направляющая вас через нее http://www.codediesel.com/php/ping-a-server-using-php/

Ещё вопросы

Сообщество Overcoder
Наверх
Меню