Как узнать что сервер в дауне?

seva2

Партнер PHPClub.ru
Как узнать что сервер в дауне?

PHP:
if(!$fp = fsockopen('info.russianpost.ru',80)) return false;
     fwrite($fp, $header);
Беру с сайта почтовые индексы, но когда сервер у них в дауне, у меня тоже страница не грузится, где происходит запрос с этого сайта, хотя есть проверка !

Как исправить?
 

SiMM

Новичок
[m]fsockopen[/m] на предмет изучения параметров функции
 

Dzen007

Guest
Есть более опасный но действенный метод, используя системные вызовы в *.nix:

$server = 'info.russian.ru';
Exec("ping -c 1 $server > ping.txt", $list);
readfile("ping.txt");
 

bkonst

.. хочется странного?...
... учитывая, что exec часто запрещен, а то, что сервер пингуется, не гарантирует того, что он будет отвечать на запросы по 80-му порту, лучше вернуться к параметрам fsockopen...
 

seva2

Партнер PHPClub.ru
PHP:
	if(!$fp = fsockopen('info.russianpost.ru',80, $errno, $errstr, 0.5)) return false;

socket_set_timeout($fp,15); 
    fwrite($fp, $header);
    $content = '';
    while (!feof($fp)) {
      $content .= fgets ($fp,128); <- на эту строку выдает ошибку
    }
Сервер то жив, просто контент почему-то он не отдает...
 

SiMM

Новичок
> Сервер то жив, просто контент почему-то он не отдает...
А почему он его должен отдавать? Ты же его даже не запрашивал, а в спецификации HTTP телепатия не предусмотрена.
http://phpclub.ru/detail/article/http_request
 
Сверху