За последние 24 часа нас посетили 35886 программистов и 1745 роботов. Сейчас ищут 1353 программиста ...

реализации вывода ip:port (ON/ OFF) if serv on then ping

Тема в разделе "PHP для новичков", создана пользователем SONY, 7 авг 2009.

  1. SONY

    SONY Активный пользователь

    С нами с:
    5 авг 2009
    Сообщения:
    24
    Симпатии:
    0
    народ прошу вашей помощи.
    Необходимо вывести на экран значение пинга до сервера. с заданным айпи адресом

    Сидел сидел думал думал ничего не придумал как такое реализовать.


    Если можно мне алгоритм работы нарисовать в блок схеме.
    Или хотя бы тыкнуть на функции которые помогли бы мне.


    Заранее спасибо.
     
  2. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    PHP:
    1.  
    2. <?php
    3. $ip = '127.0.0.1';
    4. system('ping -n 4 ' . $ip);
    5. ?>
    6.  
     
  3. SONY

    SONY Активный пользователь

    С нами с:
    5 авг 2009
    Сообщения:
    24
    Симпатии:
    0
    непонятно.... прошу пояснить
    добавил сюда ещё попытку вывод результата ... никакого эфффекта..
    пусто
    PHP:
    1.  <?php
    2.    $ip = '93.153.206.189';
    3.   $res=system('ping -n 4 ' . $ip);
    4.   print $res;
    5.   ?>
     
  4. SONY

    SONY Активный пользователь

    С нами с:
    5 авг 2009
    Сообщения:
    24
    Симпатии:
    0
    ещё бы учесть такую вещь как порт сервера.
    Было бы вообще шикарно.

    типо показывало бо что такой сервер оф или онлайн
    и выводил результат пинга в микросекундак
     
  5. SONY

    SONY Активный пользователь

    С нами с:
    5 авг 2009
    Сообщения:
    24
    Симпатии:
    0
    пробывал ещё сокет юзать для опрелеления работае т сервер по данному порту или нет
    ничего не вышло ((((
    PHP:
    1.  
    2. <body>
    3. <?php
    4. $fp = fsockopen('89.179.119.153', 27015);
    5. if($fp)
    6. {
    7. echo "ON";  
    8. }
    9. else
    10. {
    11. echo "OFF";    
    12. }
    13. ?>
    14.  
    пишет офф хотя сервер онлайн
     
  6. mantell

    mantell Активный пользователь

    С нами с:
    7 окт 2008
    Сообщения:
    125
    Симпатии:
    1
    А порт 27015 открыт?
     
  7. SONY

    SONY Активный пользователь

    С нами с:
    5 авг 2009
    Сообщения:
    24
    Симпатии:
    0
    я разобрался ыыыыыыы там для такого сервера всё сложнее оказалось )
    думаю как теперь пропинговать айпишник и вывести значение на экран
     
  8. SONY

    SONY Активный пользователь

    С нами с:
    5 авг 2009
    Сообщения:
    24
    Симпатии:
    0
    так пинг получается только есть одно большое но,

    не понятно зачем нужна эту фукция и что в ней происходит

    если кто может поясните работу ф-ии

    PHP:
    1. function getmicrotime()
    2. {
    3.     list($usec, $sec) = explode(" ", microtime());
    4.     return ((float)$usec + (float)$sec);
    5. }
    заранее спасибо
     
  9. thunderpick

    thunderpick Активный пользователь

    С нами с:
    10 апр 2006
    Сообщения:
    127
    Симпатии:
    0
    Адрес:
    Москва
    SONY
    например для времени генерации страницы...на http://dreammedia.ru/ посмотри в самом низу страницы...Это не реклама, просто для примера!
     
  10. SONY

    SONY Активный пользователь

    С нами с:
    5 авг 2009
    Сообщения:
    24
    Симпатии:
    0
    нкак выводить генерацию время страницы я понимаю
    .
    Это время выполнения сценария.
    Время конечное минус начальное ..
    просто тут как то старнно использовано было в одном коде.
    Я это использовал и пинг работает только я не понимаю каким образом оно работает
    PHP:
    1.  
    2.  
    3. <?php
    4. function getmicrotime()
    5. {
    6.     list($usec, $sec) = explode(" ", microtime());
    7.     return ((float)$usec + (float)$sec);
    8. }
    9. $timeStart = getmicrotime();
    10. $server= 'xxx.xxx.xxx.xxx';
    11. $port = '27015';
    12. $fp = fsockopen('udp://'.$server, $port);
    13.     if($fp)
    14.     {
    15. тыры пыры тут код  идёт мой
    16.             $ping = (int)((getmicrotime() - $timeStart)*1000);
    17.     тыры пыры код
    18.  
    19.         echo "
    20.         Пинг: $ping"; // каким образом тут получается  значение пинга я не понимаю
    21.  
    22.     }
    23. ?>
    24.  
    но вот работает тока я не понимаю ((
    Есть ли альтернативы


    Ещё я нашёл что этот способ устарел ибо под php 5 есть что другой способ
    http://www.php.ru/manual/function.microtime.html

    короче немного непоянтно как так значение пинга вышитываеться поясните пожалуйста логику
     
  11. thunderpick

    thunderpick Активный пользователь

    С нами с:
    10 апр 2006
    Сообщения:
    127
    Симпатии:
    0
    Адрес:
    Москва
    ну короче говоря тут походу дела просто высчитывается время пинга... аля TTL