Có nó kết nối đến một máy chủ bạn biết chạy nhanh (như Google). Sau đó, đo thời gian gửi gói đầu tiên để nhận gói đầu tiên - đó là thời gian tải lên của bạn. Thời gian từ khi nhận gói đầu tiên đến cuối cùng là thời gian tải xuống. Sau đó chia cho lượng dữ liệu được chuyển và có kết quả của bạn.
Ví dụ:
$times = Array(microtime(true));
$f = fsockopen("google.com",80);
$times[] = microtime(true);
$data = "POST/HTTP/1.0\r\n"
."Host: google.com\r\n"
."\r\n"
.str_repeat("a",1000000); // send one megabyte of data
$sent = strlen($data);
fputs($f,$data);
$firstpacket = true;
$return = 0;
while(!feof($f)) {
$return += strlen(fgets($f));
if($firstpacket) {
$firstpacket = false;
$times[] = microtime(true);
}
}
$times[] = microtime(true);
fclose($f);
echo "RESULTS:\n"
."Connection: ".(($times[1]-$times[0])*1000)."ms\n"
."Upload: ".number_format($sent)." bytes in ".(($times[2]-$times[1]))."s (".($sent/($times[2]-$times[1])/1024)."kb/s)\n"
."Download: ".number_format($return)." bytes in ".(($times[3]-$times[2]))."s (".($return/($times[3]-$times[2])/1024)."kb/s)\n";
(Bạn sẽ nhận được một thông báo lỗi từ máy chủ của Google, trên tài khoản của Content-Length
tiêu đề thiếu)
Run nó một vài lần, nhận được trung bình, nhưng không chạy quá nhiều vì tôi không nghĩ Google thích nó quá nhiều.
Nguồn
2012-07-01 16:50:50
Để biết tốc độ tải xuống, điều này xuất hiện trong tâm trí của tôi: Cài đặt trình khách dòng lệnh bittorrent và tải xuống bản phân phối Linux (không quá mới, nhưng không quá cũ, để có nhiều hạt). Thông thường tất cả những hạt giống này có thể gửi nhanh như máy chủ của bạn. – Aufziehvogel
Có vẻ ổn với tôi. Nó có hoạt động không? – PeeHaa