2012-10-09 130 views
3

是否有一個PHP腳本/片段,允許您檢查URL/IP的連接速度。舉例來說,URL是www.example.com,當我運行php腳本時,它會顯示連接(211毫秒)到URL/IP需要多長時間,我發現一些腳本只顯示它是否在線或離線,但不顯示它所花的速度。PHP服務器連接測試

我非常瞭解免費和付費服務。我想創建自己的自定義/專用監視器來監視我的許多服務器,並且無法找到連接到給定位置的簡單腳本。

+4

連接速度和ping是不同的東西。 – zerkms

+0

@zerkms是的,這就是爲什麼我問如果有人知道一個示例腳本來獲得連接速度,或者如果有可能與PHP做。 :) – chillers

+1

@DanielO不可能單獨在PHP中執行此操作,因爲您還需要一些客戶端。它也不像「這是連接速度X」那麼簡單,有太多因素可以影響它。例如,您可以使用TCP流來確定它,但所有這些ACK的開銷成本都較高。或者你可以使用UDP流,但是如果你丟包,你會怎麼做?您是否認爲這會對速度產生負面影響,或者您是否在意在時間幀X中傳輸的總數據負載?目前尚不清楚,實施起來也不是微不足道的。 – DaveRandom

回答

3

也許是這樣的:

<?php 
// Create a curl handle 
$ch = curl_init('http://www.yahoo.com/'); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

// Execute 
curl_exec($ch); 

// Check if any error occured 
if(!curl_errno($ch)) { 
    $info = curl_getinfo($ch); 
    echo 'Took ' . $info['total_time'] . ' seconds to send a request to ' . $info['url']; 
} 
// Close handle 
curl_close($ch); 
?> 
+0

它是直接在頁面中加載雅虎? – chillers

+0

立即嘗試編輯它。 –

+0

它也這樣做。 :) – chillers

0

試試這個:

$ch = curl_init("http://www.google.com/"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$start = microtime(); 
$foo = curl_exec($ch); 
$end = microtime(); 
curl_close($ch); 

echo "Seconds to load = ". $end - $start; 

這不會考慮圖片或JavaScript,只是intital響應時間和服務器代碼的運行。

+0

這就是我所需要的是響應而不是頁面加載速度我測試了它並得到'-0.694715'就是正確的694ms? – chillers

+1

-1因爲這不能回答這個問題(一個基於HTTP的HTML從負載很重的服務器載入頁面的時間與連接速度幾乎沒有任何關係),也因爲你的代碼不工作,主要是因爲你沒有將'true'傳遞給'microtime()'。 – DaveRandom

+1

@DaveRandom:This答案是做什麼的,實際上你的評論應該得到一個-1,因爲你不明白OP在問什麼,作爲回答的人在做什麼。我正在答覆答案 – raidenace