我想用 PHP exec() 在 Windows 机器中远程执行 tracert。我有:
<?php
echo exec("C:\Windows\System32\TRACERT.exe");
echo "<br/>Success!";
?>
这不会给我错误,它会打印"成功!但是,如何将参数(例如 IP 地址传递给 tracert.exe并将结果打印到变量或数组中呢?我不知道传递看起来像这样的参数的语法:tracert 等。
我更喜欢 passthru(),因为跟踪路由输出可以在浏览器中即时观看,而不必等到完成。
$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!";
?>