Ping使用PHP Exec返回信息

时间:2015-11-22 23:08:14

标签: php html exec ping

我正在尝试获取一个分析ping和存储信息的数据库。

现在,我遇到了接收ping的问题。我已经查看了之前提出的问题,除了我没有启用php.ini之外,我有几乎相同的答案。我不确定究竟要把它放在哪里。

这是我到目前为止的代码:

if ($_POST['Ping']){
    //store the address the user gave as a variable called address
$address = $_POST["address"];
exec("ping -n 3 $address",$output,$status);
echo "<pre>";
foreach ($output as $line) echo htmlspecialchars("$line\n"); 
 echo "</pre>";


}

我也尝试过:

$pingresult = exec("ping  -n 3 $address", $outcome, $status);
 echo $pingresult 

这给我一个问题,说从数组转换为字符串。

1 个答案:

答案 0 :(得分:0)

您在返回时未检查$status的值。这样做,你可能会发现它不是零。在命令行中输入ping -n 3 192.168.0.1可能会给您一条错误消息:connect: Invalid argument

这是你应该做的:

  1. 在调用ping之前更改代码以检查$address是否包含有效地址

  2. 更改代码以检查exec的错误返回值。

  3. 检查为ping输入的参数是否正确。 ping -n 3 address无法在我的系统上运行,产生错误消息和非零退出状态,但ping -c 3 address会给我三次ping address的尝试。