PHP exec()TRACERT.exe如何将所需的参数传递给Windows命令

时间:2014-02-21 23:06:46

标签: php windows cmd exec traceroute

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

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

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

2 个答案:

答案 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");