2011-08-14 4 views
0

Таким образом, существует несколько способов пинга адреса, но мне повезло с чистой библиотекой Ping в PHP. Единственная проблема заключается в том, что я не могу для жизни понять, как пинговать номер порта на хосте. Я знаю, что это должно быть что-то глупое.Net_Ping с номером порта. Как?

Я пробовал хост: порт без везения. Я бы очень хотел придерживаться Net Ping, потому что выход очень полезен.

Вот мой пример кода.

<?php 
    require_once "Net/Ping.php"; 

    $ping = Net_Ping::factory(); 


    if(PEAR::isError($ping)) 
     echo $ping->getMessage(); 
    else 
    { 
     /* Number of packets to send */ 
     $ping->setArgs(array('count' => 4)); 
     $rawData = $ping->ping('example.com'); 
     print_r($rawData); 
    } 
?> 

ответ

1

Пинг не основан на портах, это ICMP command. Концепция порта просто не имеет смысла для ICMP. Если вы собираетесь делать ping на основе порта, вам нужно что-то на другой стороне подключения в этом порту, чтобы ответить вам - например, страница server_status.php, которая возвращает «ОК». В этом случае вы будете выполнять «ping» HTTP, а не настоящий ping, а просто веб-запрос, но вы можете собрать из него довольно много данных.

+0

Итак, ответ заключается в том, чтобы просто проверить порт с помощью fsocket или что-то в этом роде. Хорошо, я проверю задержку с помощью ping и проверьте, открыт ли порт с помощью сокета. благодаря – Tyler

Смежные вопросы