Нужна помощь в скрипте(exec ping)

Статус
В этой теме нельзя размещать новые ответы.

dralex

Постоялец
Регистрация
13 Июн 2008
Сообщения
77
Реакции
18
Код:
<?php $ip='10.3.3.254'; exec('ping '.$ip.' -n 1 -w 200',$output, $status);if ($status==0)echo "Online";else echo "Offline!";?>

Перед вами скрипт который выводит статус пинга, онлайн или офлайн, если пинг прошел то пишит оналйн а если не прошел то пишит офлайн, как можно сделать так чтобы при прошедшем пинга писало Онлайн и время задержки ?
 
попробовать использовать popen
 
  • Заблокирован
  • #3
а что мешает распарсить $output?..
 
Буду очень благодарен если приведете пример ) на моем варианте ;) :thenks:
 
Так? Хотя мало ли, может и не сработать =(
PHP:
<?php $ip='192.168.0.1'; exec('ping '.$ip.' -n 1 -w 200',$output, $status);
if ($status==0){
echo "Online ";
$r=explode(" ",iconv("cp866","windows-1251",$output[3]));
echo $r[5];
}else echo "Offline!";
?>
 
По сути сработало, выводит такой результат - время=34мс , Спасибо
но мне бы хотелось выводить только цифру задержки и исклбчить слово " время=" и "мс"

подскажете ?:)
 
хм... а если будут не "мс", а "с" и т.д.? =)
вместо
PHP:
echo $r[5];
напиши
PHP:
echo substr($r[5],6,-2);
 
Большущее спасибо )
и последний штрих, как делать так чтобы если статус вывился как офлайн, то повторить попытку/команду!? :)
 
Большущее спасибо )
и последний штрих, как делать так чтобы если статус вывился как офлайн, то повторить попытку/команду!? :)

Сделай цикл "While" и повторяй до тех пор пока не получишь нужный результат. в цикле можешь поставить задержки чтобы он не исполнялся каждую милисекунду и не так нагружал сервер.
 
я ооочень плохо соображаю в php , мне нужен рабочий пример на моем варианте :(thenks:
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху