Я пингую пару компьютеров (192.168.200.1 и 192.168.200.2) на своем корпоративном компьютере, который находится за маршрутизатором (192.168.200.254).PHP Exec Ping Destination host unreachable
function pingAddress($TEST) {
$pingresult = exec("ping -n 1 $TEST", $output, $result);
if ($result == 0) {
echo "Ping successful!";
} else {
echo "Ping unsuccessful!";
}
}
pingAddress("192.168.220.1");
pingAddress("192.168.220.2");
Моя проблема заключается в том, что это один из них компьютер не включен (.1) и до сих пор я получаю ответ звона.
Pinging 192.168.200.1 with 32 bytes of data:
Reply from 192.168.200.254: Destination host unreachable.
Ping statistics for 192.168.200.1:
Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
var_dump ($ выход) при попытке 192.168.220.1 пинг показывает, как:
array(6) {
[0]=> string(0) ""
[1]=> string(44) "Pinging 192.168.200.1 with 32 bytes of data:"
[2]=> string(57) "Reply from 192.168.200.254: Destination host unreachable."
[3]=> string(0) ""
[4]=> string(34) "Ping statistics for 192.168.200.1:"
[5]=> string(56) " Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),"
}
Так я вместо пытаюсь искать $ выходной массив, который создается для ложноположительных «Destination host unreachable ", но не повезло с этим маршрутом.
function pingAddress($TEST) {
$findme ="Destination host unreachable";
$pingresult = exec("ping -n 1 $TEST && exit", $output, $result);
//echo $result. "<br/>";
if (($result == 0) AND (in_array($findme, $output))){
echo "Ping unsuccessful! <br/>";
}
elseif (($result == 0) AND (!in_array($findme, $output))){
echo "Ping successful! <br/>";
}
elseif ($result == 1){
echo "Ping unsuccessful! <br/>";
}
}
pingAddress("192.168.220.1");
pingAddress("192.168.220.2");
Показывает как успешный. Я, вероятно, что-то делаю неправильно. Есть идеи?
in_array не будет работать, поскольку он должен соответствовать всему значению элемента. Вместо этого, я бы, вероятно, сделал что-то глупое, как объединение массива в одну строку и preg_match для строки, которую вы ищете. Или, если вы считаете, что это безопасное предположение, просто preg_match для третьего элемента массива. – mkaatman