2011-09-26 46 views
1

我想做的標題狀態。以ping爲單位的用戶IP並返回ms結果,例如:PHP - 獲取服務器ping一個訪客IP並返回ping毫秒

Ping IP return 400ms。

我不知道如何做到這一點,但我期望它會相對簡單。我可以訪問exec()函數和類似於它的函數,因爲我將在虛擬專用服務器上運行此腳本。

在此先感謝。

回答

1

試試這個

<?php 

$out = array(); 
exec('ping -c 4 '.$_SERVER['REMOTE_ADDR'], $out); 
print_r($out); 

?> 
+0

這似乎是花費很長的時間來加載。 –

+0

儘管我已經將它包裝在一個函數調用中,但它似乎可以工作。如果用戶通過代理進行瀏覽,則可能會得到錯誤的地址,但如果有必要,這是一個相當簡單的添加 - 我遵循YAGNI。 –

+0

@ h_12 - 如果你希望它是異步的,爲了不阻止頁面加載,那麼我建議在頁面加載後調用Ajax腳本;否則,你一直有可能會變得緩慢。 –

0

試試這個:

<?php 

$ip  = $_SERVER['SERVER_ADDR']; // Get the IP address of the visitor 
$result = system('ping -n 1 '.$ip, $retval); // the result contains the last line of the ping command. 

if ($retval==0) echo "OK"; 
if ($retval==1) echo "NOT OK"; 

?>