Код:
Func Get_Speed_Internet($country)
If ($country == 'US') Then
;Тест урлы США
Local $aUrl_test[3] = ['http://node06.raidlogic.net/speedtest/10mb.bin','http://mirror.us.leaseweb.net/speedtest/10mb.bin','http://testmeplease-us.s3.amazonaws.com/10mb.bin']
Else
;Тест урлы Европы
Local $aUrl_test[5] = ['http://speedtest.tweak.nl/10mb.bin','http://mirror.de.leaseweb.net/speedtest/10mb.bin','http://speedtest.onsbrabantnet.nl/files/10mb.bin','http://mirror.global-layer.com/speedtest/10mb.bin']
EndIf
;Если урл не доступен будет перебирать пока не надйте рабочий рандомно из списка
Do
$rand_num = Random(0,UBound($aUrl_test)-1,1)
$url_test_speed = $aUrl_test[$rand_num]
;ConsoleWrite($url_test_speed & @CRLF)
Until InetGetSize($url_test_speed,1) > 0
$nSize = InetGetSize($url_test_speed) ;получаем размер файла для теста
$nSize = Ceiling($nSize/1000000) ;переводим размер байт в мегабайты и округляем
$hTimer = TimerInit() ; Запускает таймер и хранит дескриптор в переменной
InetGet($url_test_speed, @TempDir&"\10mb.bin")
;ConsoleWrite(@TempDir&"\10mb.bin" & @CRLF)
$iDiff = TimerDiff($hTimer) ; Возвращает разницу во времени, от предыдущего запуска TimerInit, дескриптор которого указан в переменной
$iDiff= Ceiling($iDiff/1000) ;переводим в секунды и округляем
$speed_internet = Ceiling($nSize*1.25*10/$iDiff) ;вычисляем скорость интрнета
;ConsoleWrite("~"&$speed_internet&" Mb" & @CRLF)
FileDelete(@TempDir&"\10mb.bin")
If IsNumber($speed_internet) Then
Return $speed_internet
Else
Return 0
EndIf
EndFunc
Написал такую фот простенькую функцию, и она нормально не измеряет скорость, потому что надо как то многопоточно качать ... подскажите как лучше мерить скорость?
http://autoit-script.ru/index.php?topic=11447.0 тут смотрел так и не понял как получить из приведенного ниже класса скорость