Скрипт пинга, серверов.

TecT

Пользователь для ТесТа
Регистрация
25 Фев 2009
Сообщения
457
Реакции
45
Здравствуйте. Интересует скрипт пинга определённого сервера. При этом если сервер офлайн то чтоб была кнопка рестарт. Как сделать это на php кто то подскажет?
 
тема не в разделе PHP

а по сути, можно запускать команду ping и парсить вывод или же при помощи fsockopen пытаться подключиться к серверу на определенный порт с таймаутом 5-10 сек., если нет подключения - нет связи
 
А как Вы представляете себе работу кнопки "рестарт", если удалённый сервер не отвечает? Вам в любом случае уже либо IP-KVM нужен, либо в ДЦ звонить
 
А как Вы представляете себе работу кнопки "рестарт", если удалённый сервер не отвечает? Вам в любом случае уже либо IP-KVM нужен, либо в ДЦ звонить

Если сервер, который софт (например апач, CS) не отвечает, то это не значит, что сервер, который виртуальный или физический (хостинг, vps, vds) тоже лежит. Не говоря уже о панелях управления (для хостинг, vps), например isp-manager, которые тоже позволят перезагрузить сервер. Или может всё же имеется ввиду обычная команда ping?

А вопрос ТС на обычный язык можно перевести как: "нарисуйте мне план здания". И на такой общий вопрос он общий ответ и получил. А если уважаемый ТС хочет более конкретный ответ, то пусть расшифрует какие сервера надо пинговать (может они на порту каком особом) и каким образом он их перезагружает.

Сообщения, следующие за сим, без подробных и четких решений или подробных и четких вопросов, могут навлечь недоброе на их авторов...
 
  • Заблокирован
  • #6
Профессионалы, а ведёте себя как дети малые. Автору похоже просто надо проверять доступен ли сервер или нет.
PHP:
<?php
      if (isServerAvailible('http://192.168.1.1/'))
      {
              echo "Сервер в порядке.Кнопку не выводим";
      }
      else
      {
              echo "Сервер не доступен. Выводим кнопку.";
              //то есть тут пишем код с кнопкой(какой конкретно я даже примерно не представляю)
      }
      //возвращает true, если домен доступен, false если нет
      function  isServerAvailible ($domain)
      {
              //проверка на валидность урла(РАБОТАЕТ НА PHP 5 >= 5.2.0)
              if(!filter_var($domain, FILTER_VALIDATE_URL))
              {
                      return false;
              }
              //инициализация curl
              $curlInit = curl_init($domain);
              curl_setopt($curlInit,CURLOPT_CONNECTTIMEOUT,10);//цифра 10 означает сколько времени(в секундах) ждать ответа от сервера
              curl_setopt($curlInit,CURLOPT_HEADER,true);
              curl_setopt($curlInit,CURLOPT_NOBODY,true);
              curl_setopt($curlInit,CURLOPT_RETURNTRANSFER,true);
              //получение ответа
              $response = curl_exec($curlInit);
              curl_close($curlInit);
              if ($response) return true;
              return false;
      }
?>
 
Назад
Сверху