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!";
?>
Другие вопросы по тегам