Skip to content

Instantly share code, notes, and snippets.

@Eternity-Yarr
Created November 20, 2015 08:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Eternity-Yarr/a44a6bdcdbbd205c988b to your computer and use it in GitHub Desktop.
Save Eternity-Yarr/a44a6bdcdbbd205c988b to your computer and use it in GitHub Desktop.
// берем из таблицы список ip адресов (тут можно и WHERE добавить)
$result = mysqli_query("SELECT ip_address FROM devices", $link);
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"];
}
}
// если есть OK адреса - обновлем все сразу одним запросом
if (Count($ok)) {
mysqli_query($link, "UPDATE test SET `status`=1 WHERE `ip_address` IN ('".implode("', '", $ok)."')");
}
// если есть BAD адреса - обновлем все сразу одним запросом
if (Count($bad)) {
mysqli_query($link, "UPDATE test SET `status`=0 WHERE `ip_address` IN ('".implode("', '", $bad)."')");
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment