2015-03-02 73 views
-1

當我使用windows命令'ping'時,我只能ping通IP地址並獲得結果;即使只有IP地址xxx.xxx.xxx。這個工作不需要任何端口。我正在ping一個只有HTTPS和非標準端口的IP,但ping仍然有效。如何使用PHP和curl以與ping相同的方式ping ping ping

在嘗試了幾個版本的GET_HEADERS和fsockopen之後,我仍然無法從PHP Pinging成功返回。

我需要的是能夠ping不知道端口或HTTP協議的IP地址,並確定服務器是否啓動。

任何建議,將不勝感激。

感謝

+0

你有機會給exec? – Ronnie 2015-03-02 23:43:00

+1

Ping與HTTP甚至TCP無關。它是特殊協議(ICMP)的一部分。 ['socket_create()'](http://php.net/manual/en/function.socket-create.php)有一些信息可以做到這一點(甚至在註釋中還有一些'ping()'代碼)。 – Carpetsmoker 2015-03-03 00:07:56

+0

成功的「ping」並不能真正告訴你服務器是否「啓動」。以及取決於你的定義。如果你想檢查是否有abc.com可供我瀏覽,ping不是一個好選擇 – 2015-03-03 00:14:26

回答

0

我相信,爲了使用的fsockopen和捲曲,則需要使用exec命令,像這樣知道的端口。嘗試。

<?php 
$ping = exec("ping www.stackoverflow.com"); 

if ($ping == 0){ 
    echo "Reached server"; 
} 
else 
{ 
    echo "Failed to reach"; 
} 
?> 

php.net/exec更多關於高管

+0

感謝您的提示。它效果很好。你對性能和multi_curl有什麼想法嗎? – Chris 2015-03-03 00:04:18