2014-02-07 56 views
0

我正在使用一個函數來ping一些遠程IP的內部和ajax請求。它工作正常,如果ping是成功的,但如果沒有響應,服務器似乎凍結,我必須關閉瀏覽器。但是,如果我直接在命令行中輸入相同的shell函數,則超時工作。另外,它使用-n在我的本地機器(WAMP)上正常工作。在Linux上的PHP Ping超時不起作用

功能

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"; 
    } 
} 

} 
+0

錯誤日誌說? –

+0

代碼無法正常工作,因爲在'ping'命令字符串和'$ u_up'之間缺少'.'運算符。 –

+0

不好意思,是在移動括號來匹配其他的例子,錯誤複製粘貼 – Tyler

回答

0

我從來沒有得到那個工作,而不是我用的fsockopen。它效果很好,而且速度更快。

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