PHP exec() TRACERT.exe как передать нужные аргументы команде Windows
Я хочу удаленно выполнить tracert на компьютере Windows с PHP exec(). Я имею:
<?php
echo exec("C:\\Windows\\System32\\TRACERT.exe");
echo "<br/>Success!";
?>
Это не дает мне ошибок и печатает "Успех!". Но как передать аргумент (например, IP-адрес в tracert.exe и распечатать результат в переменной или массиве? Я не знаю синтаксис для передачи аргумента, который выглядит как: tracert и т. Д.
2 ответа
Решение
Я предпочитаю passthru(), так как вывод traceroute можно наблюдать в браузере на лету, не дожидаясь завершения.
$IP=$_REQUEST['IP'];
set_time_limit(120);
echo "<h1>Traceroute $IP</h1><pre>";
passthru("tracert.exe -h 8 $IP");
По умолчанию exec
вернет только последнюю строку выполненной команды.
Вы должны использовать shell_exec
следующее:
<?php
$result = shell_exec("C:\\Windows\\System32\\TRACERT.exe www.google.com");
print $result;
echo "<br/>Success!";
?>