如何检查php中的cmd ping是否成功


How check if succesfull cmd ping in php

如何使用php-exec检查php-ping是否成功返回,我想用while循环,但我不确定这是否是最好的方法,我尝试过:

exec('ping www.google.com', $output)

但我必须执行var_dump($output);为了查看结果,我想对ping命令返回的每一行进行检查

$i = 2;
while(exec('ping www.google.com', $output)) {
  if($output) {
     echo 'True';
  } else {
     echo 'False';
  }
}

我知道这个代码是错误的,但这正是我所需要的,如果你们中的任何人能给我一个如何做它的领先优势或建议,我将非常感激……谢谢!!

这应该做到:

if(exec('ping http://www.google.com')) {
 echo 'True';
} else {
 echo 'False';
}

我建议你可以使用CUrl参见手册,但这一切都取决于你想要实现的目标。

如果需要,请提供更多数据。

注意

您需要在google.com之前使用http://,因为这是制作ping所必需的

它可能更快、更高效,只在PHP中执行,而不是执行shell

$host = '1.2.3.4'; 
$port = 80; 
$waitTimeoutInSeconds = 1; 
if($fp = fsockopen($host,$port,$errCode,$errStr,$waitTimeoutInSeconds)){   
   // It worked 
} else {
   // It didn't work 
} 
fclose($fp);

此外,出于安全原因,某些服务器将禁用EXEC,因此您的方法不会在每个服务器设置上都起作用。