bash — выполнить команду ping в php и получить интерактивный вывод на веб-странице

Я попытался запустить команду ping с помощью php:

<?php
$response = shell_exec('ping -c 4 '. $_POST['host']);
echo "<div class=\"response\">".$response."</div>";
?>

Но я отправляю имя хоста из поля ввода, а затем запускаю этот скрипт php. Это работает, но вывод результатов отображается только при успешном выполнении команды, а не в интерактивном режиме.

https://w3dt.net/tools/ping

Когда я даю «www.google.com», он показывает результаты в интерактивных манерах. Можете ли вы помочь мне построить интерактивный как w3dt.net или предложите мне другой способ добиться этого.

1

Решение

  1. Инструмент, на который вы ссылаетесь, использует WebSockets для визуализации «интерактивного» вывода.

  2. Вы никогда не должны передавать какой-либо непроверенный пользовательский ввод в вызов shell_exec (), так как это позволит любому пользователю выполнить практически любую команду оболочки (указав, скажем, «google.com»). && rm -rf / «в качестве имени хоста).

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]