我正试图获得一个分析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
以下是您应该做的:
-
在调用ping 之前,请更改代码以检查
$address
是否包含有效地址 -
修改代码以检查exec的返回值是否存在错误。
-
检查为ping输入的参数是否正确。
ping -n 3 address
在我的系统上不起作用,会产生错误消息和非零退出状态,但ping -c 3 address
会给我三次pingaddress
的尝试。