0

我想用 PHP exec() 在 Windows 机器上远程执行 tracert。我有:

<?php
    echo exec("C:\\Windows\\System32\\TRACERT.exe");
    echo "<br/>Success!";
?>

这不会给我错误,它会打印“成功!”。但是我如何传递一个参数(例如一个 IP 地址到 tracert.exe 并将结果打印在一个变量或数组中?我不知道传递一个看起来像这样的参数的语法: tracert 等。

4

2 回答 2

0

我更喜欢 passthru() 因为 traceroute 输出可以在浏览器中即时查看,而不必等到完成。

$IP=$_REQUEST['IP'];
set_time_limit(120);
echo "<h1>Traceroute $IP</h1><pre>";
passthru("tracert.exe -h 8 $IP");
于 2014-02-22T10:40:50.400 回答
0

默认情况下exec将只返回执行命令的最后一行。

你应该使用shell_exec如下:

<?php
    $result = shell_exec("C:\\Windows\\System32\\TRACERT.exe www.google.com");
    print $result;
    echo "<br/>Success!";
?>
于 2014-02-21T23:12:58.103 回答