Ping使用PHP Exec返回信息


Ping using PHP Exec to return information

我正试图获得一个分析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 

这给我带来了一个问题,即从数组转换为字符串。

返回时没有检查$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的尝试。