我想用 PHP exec() 在 Windows 机器上远程执行 tracert。我有:
<?php
echo exec("C:\\Windows\\System32\\TRACERT.exe");
echo "<br/>Success!";
?>
这不会给我错误,它会打印“成功!”。但是我如何传递一个参数(例如一个 IP 地址到 tracert.exe 并将结果打印在一个变量或数组中?我不知道传递一个看起来像这样的参数的语法: tracert 等。
我想用 PHP exec() 在 Windows 机器上远程执行 tracert。我有:
<?php
echo exec("C:\\Windows\\System32\\TRACERT.exe");
echo "<br/>Success!";
?>
这不会给我错误,它会打印“成功!”。但是我如何传递一个参数(例如一个 IP 地址到 tracert.exe 并将结果打印在一个变量或数组中?我不知道传递一个看起来像这样的参数的语法: tracert 等。
我更喜欢 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!";
?>