Пишу/отлаживаю скрипт, который смог бы пропинговать все ip адреса, находящиеся в столбце
ip_address

и по состоянии компьютера (включен ли он или выключен) писал отчёт в строку status. Т.е. если компьютер находится онлайн, в столбец "status" писать значение 1, а если оффлайн - 0

А вот скрипт:
<?php
$link = mysqli_connect("192.168.10.56", "test", "test", "test");
if (!$link) {
echo "Error: Unable to connect to MySQL." . PHP_EOL;
echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
exit;
}
echo "Работает: Подключение с базой данных имеется!" . PHP_EOL;
echo "Информация о хосте: " . mysqli_get_host_info($link) . PHP_EOL;
// берем из таблицы список ip адресов
$result = mysqli_query($link, "SELECT ip_address FROM devices");
if ($result) { // если список есть
$ok = $bad = Array(); // в этих массивах будем хранить списки адресов
после проверки
while ($row = mysqli_fetch_assoc($result)) { // прокручиваемся через
него по одному
exec("ping -c 1 " . $row["ip_address"], $output, $execResult); //
пингуем адрес
if ($execResult == 0) { // в зависимости от результатов пинга
заносим адрес в массив
$ok[] = $row["ip_address"];
} else {
$bad[] = $row["ip_address"];
}
}
echo $bad;
// если есть OK адреса - обновлем все сразу одним запросом
if (Count($ok)) {
mysqli_query($link, "UPDATE 'test'.'devices' SET `status`='1'
WHERE `ip_address` IN ('".implode("', '", $ok)."')");
}
// если есть BAD адреса - обновлем все сразу одним запросом
if (Count($bad)) {
mysqli_query($link, "UPDATE 'test'.'devices' SET `status`='0'
WHERE `ip_address` IN ('".implode("', '", $bad)."')");
}
}
?>
Где что не так?