我想用PHP exec()在Windows机器上远程执行tracert。我有:
<?php
echo exec("C:\\Windows\\System32\\TRACERT.exe");
echo "<br/>Success!";
?>
这不会给我错误,它会打印出“成功!”。 但是如何将参数(例如IP地址)传递给tracert.exe并将结果打印在变量或数组中? 我不知道传递类似的参数的语法:tracert等。
答案 0 :(得分:0)
默认情况下,exec
将仅返回已执行命令的最后一行。
您应该使用shell_exec
,如下所示:
<?php
$result = shell_exec("C:\\Windows\\System32\\TRACERT.exe www.google.com");
print $result;
echo "<br/>Success!";
?>
答案 1 :(得分:0)
我更喜欢passthru(),因为traceroute输出可以在浏览器中动态观看,而不必等到完成。
$IP=$_REQUEST['IP'];
set_time_limit(120);
echo "<h1>Traceroute $IP</h1><pre>";
passthru("tracert.exe -h 8 $IP");