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

Тема в разделе "PHP", создана пользователем dralex, 30 янв 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. dralex

    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!";?>
    Перед вами скрипт который выводит статус пинга, онлайн или офлайн, если пинг прошел то пишит оналйн а если не прошел то пишит офлайн, как можно сделать так чтобы при прошедшем пинга писало Онлайн и время задержки ?
     
  2. medvoodoo

    medvoodoo Постоялец

    Регистр.:
    28 мар 2007
    Сообщения:
    89
    Симпатии:
    19
    попробовать использовать popen
     
  3. BDS

    BDS Читатель

    Заблокирован
    Регистр.:
    7 янв 2009
    Сообщения:
    42
    Симпатии:
    2
    а что мешает распарсить $output?..
     
  4. dralex

    dralex Постоялец

    Регистр.:
    13 июн 2008
    Сообщения:
    77
    Симпатии:
    18
    Буду очень благодарен если приведете пример ) на моем варианте ;) :thenks:
     
  5. PapaJoe

    PapaJoe

    Регистр.:
    4 авг 2008
    Сообщения:
    620
    Симпатии:
    311
    Так? Хотя мало ли, может и не сработать =(
    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!";
    ?>
     
    dralex нравится это.
  6. dralex

    dralex Постоялец

    Регистр.:
    13 июн 2008
    Сообщения:
    77
    Симпатии:
    18
    По сути сработало, выводит такой результат - время=34мс , Спасибо
    но мне бы хотелось выводить только цифру задержки и исклбчить слово " время=" и "мс"

    подскажете ?:)
     
  7. PapaJoe

    PapaJoe

    Регистр.:
    4 авг 2008
    Сообщения:
    620
    Симпатии:
    311
    хм... а если будут не "мс", а "с" и т.д.? =)
    вместо
    PHP:
    echo $r[5];
    напиши
    PHP:
    echo substr($r[5],6,-2);
     
    dralex нравится это.
  8. dralex

    dralex Постоялец

    Регистр.:
    13 июн 2008
    Сообщения:
    77
    Симпатии:
    18
    Большущее спасибо )
    и последний штрих, как делать так чтобы если статус вывился как офлайн, то повторить попытку/команду!? :)
     
  9. funman

    funman Постоялец

    Регистр.:
    28 дек 2007
    Сообщения:
    146
    Симпатии:
    25
    Сделай цикл "While" и повторяй до тех пор пока не получишь нужный результат. в цикле можешь поставить задержки чтобы он не исполнялся каждую милисекунду и не так нагружал сервер.
     
  10. dralex

    dralex Постоялец

    Регистр.:
    13 июн 2008
    Сообщения:
    77
    Симпатии:
    18
    я ооочень плохо соображаю в php , мне нужен рабочий пример на моем варианте :(thenks:
     
Статус темы:
Закрыта.