- RU.PHP.CHAINIK --------------------------------------------- RU.PHP.CHAINIK -
Msg : #467 [517]
От : Nikolai Chuvakhin 2:5020/175.2 01 сентября 03, 03:32
Кому : Savva Bogatyrev 01 сентября 03, 03:56
Тема : пинг и php
-------------------------------------------------------------------------------
From: "Nikolai Chuvakhin"
Sun Aug 31 2003 22:51, Savva Bogatyrev wrote to All:
SB> Возможен ли на php ping? Пpичем нужен такой ping, чтобы
SB> пинговал сеpвеp server с поpтом port, а сообщал только так:
SB> server:port is online.
Вариантов куча. Можно сделать
exec ('ping -c 4 -W 10 server:port', $response);
и проанализировать ответ, который будет помещен в массив $response.
Можно воспользоваться fsockopen():
$fp = fsockopen ($server, $port, $errno, $errstr, $timeout);
if (!$fp) {
echo "$errstr ($errno)
\n";
} else {
echo "$server:$port is online\n";
}
Можно слепить что нибудь похожее с использованием функций socket_*()
(они, правда, до сих пор числятся экспериментальными)...
> Если сеpвеp в оффлайне, то хотелось бы, чтоб не
> тоpмозил вывод стpаницы... :-\
А это как тайм-аут настроите, так и будет. У ping тайм-аут задается
ключом -W (в моем примере он был десять секунд). При использовании
fsockopen() тайм-аут задается пятым аргументом (в моем примере это
переменная $timeout). Если настроите его слишком коротким, удаленный
сервер может просто не успеть ответить. Если слишком длинным -- будет
долго работать...
С уважением, Hиколай Чувахин
--- ifmail v.2.15dev5
* Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2)