Linux上的PHP Ping超时不起作用

时间:2014-02-07 23:21:38

标签: php linux shell exec ping

我正在使用一个函数来ping一些远程IP的内部和ajax请求。如果ping成功,它工作正常,但如果没有响应,服务器似乎冻结,我必须关闭浏览器。但是如果我直接在命令行中输入相同的shell函数,则超时有效。此外,它使用-n。

在我的本地计算机(WAMP)上正常工作

功能

public function ping_node($u_ip) {

    exec("/bin/ping -c 2 -w 2 " . $u_ip, $output, $result);

    if ($result == 0){
        return array("ok",$output);
    }else{
        return "fail";
    }
}

}

1 个答案:

答案 0 :(得分:0)

我永远无法让它工作,而是使用了fsockopen。它效果很好而且速度更快。

function ping_node($ip){
  $socket = @fsockopen($ip, "102", $errorNo, $errorStr, 3);
    if(!$socket) return "fail";
  else return "ok";
}