С помощью команды PING с PHP
у Меня есть функция, которая должна капать 5 машин во внутренней сети. Я использую команду ниже:
//EXECUTA O PING
exec("ping " . $host, $output, $result);
что происходит, это следующее. Если я помещаю ip-адрес любого, за пределами картины, как "192.999.999.999" испытание функции, ниже, возвращает правильно, что не существует (OFF):
// TESTA O RESULTADO
if ($result == 0) {
echo "ON";
} else {
echo "OFF";
}
Теперь, если я ставлю ip правильным, но только находится в автономном режиме, он возвращает мне всегда ОНЛАЙН. Если ip-адрес находится даже в интернете он также возвращает мне ИНТЕРНЕТ, что является правильным.
Есть ли другой способ использовать эту связь в PHP? Таким образом, что он распознает, когда ip-находится в автономном режиме?
2 answers
Редактировал команду exec
, добавляя следующим образом:
exec("ping -n 1 -w 1 " . $host, $output, $result);
Таким образом, кроме того, чтобы выиграть время, результат оказался правильным.
Попробуйте следующим образом:
exec('ping 127.0.0.1', $saida, $retorno);
if (count($saida)) {
print 'A Máquina está online e os dados do PING foram gravados em $saida. :)';
} else {
print 'A Máquina NÃO está online ou o host não pode ser encontrado. :(';
}