1

Тема: AHK: Тест скорости соединения с интернет

Имеется ресурс для проверки ширины канала связи с интернет speedtest.net. Требуется круглосуточно раз в 30 минут проводить тест скорости.
Вроде всё просто. Выбираем сервер и периодически делаем щелчок по кнопке "повторить тест". Все данные консолидируются на самом сервере speedtest.net, их записывать не нужно.
Не изобретаю ли я велосипед, вдруг всё уже давно придумано и работает без окна интернет-обозревателя?

2

Re: AHK: Тест скорости соединения с интернет

Так понимаю, нужно засечь время, что-нибудь скачать, поделить размер скачанного на время.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3

Re: AHK: Тест скорости соединения с интернет

Speedtest.net всё это делает сам. Вот только для каждого теста нужно активировать окно интернет-обозревателя, делать щелчок по кнопочке "проверить снова". Довольно аляповато получается, ещё и будет мешать при работе с компьютером. Была мысль сделать окно скрытым, а щелчок ЛКМ посылать через ControlSend. Вот только целевое окно почему-то его не понимает. В том же Notepad или Paint работает.
P. S. MouseClick срабатывает нормально.

4

Re: AHK: Тест скорости соединения с интернет

Internet Speedtest Function
http://www.autohotkey.com/forum/topic56330.html

правда строку

UrlDownloadToFile, http://%host%/speedtest/random%resolution%.jpg?x=%random%, %A_Temp%\speedtest

наверное необходимо подправить на :

UrlDownloadToFile, http://%host%/mini/speedtest/random%resolution%.jpg?x=%random%, %A_Temp%\speedtest

p.s.: host = "speedtest.net" , больше я не разбирался

5

Re: AHK: Тест скорости соединения с интернет

Спасибо за ссылку. Однако, у меня программа жалуется на 68 стоку httpQuery(html,URL,POSTdata): Call to nonexistent function.

6

Re: AHK: Тест скорости соединения с интернет

[function] httpQuery
http://www.autohotkey.com/forum/topic33506-225.html

7

Re: AHK: Тест скорости соединения с интернет

Разбирался с первой частью (загрузка файла),

UrlDownloadToFile, http://%host%/speedtest/random%resolution%.jpg?x=%random%, %A_Temp%\speedtest

работает нормально.
Есть вопрос: кто знает, зачем в этой строке нужно ?x=%random% на конце? И без него работает.

8

Re: AHK: Тест скорости соединения с интернет

Точно ответит тот, кто знает как работает UrlDownloadToFile
Предположу, это для придания url псевдоуникальности, для предотвращения загрузки файла из некого кэша.

9

Re: AHK: Тест скорости соединения с интернет

Когда через интернет-обозреватель загружаешь по ссылке, кэш работает. А UrlDownloadToFile каждый раз заново загружает.

10

Re: AHK: Тест скорости соединения с интернет

Помогите разобраться, как на самом деле правильно считать скорость. Имеется файл с известным размером (к примеру 10 мегабайт). Известно время, за которое он загружен (например 100 секунд). Нужно получить скорость в мегабитах в секунду. Как правильно перейти от мегабайт к битам? Насколько я понял, в информационный технология традиционно неправильно считают, что в килобайте 1024 байт, а в мегабайте 1024 килобайт.

11 (изменено: kirtech, 2011-12-03 14:55:06)

Re: AHK: Тест скорости соединения с интернет

http://ru.wikipedia.org/wiki/Бит_в_секунду

12

Re: AHK: Тест скорости соединения с интернет

Я до этого читал Википедию (статья про байты). Но и после этих "Бит в секунду" тоже не разобрался. Там и там есть "традиционно " и "стандартно". А на конкретном примере?

13

Re: AHK: Тест скорости соединения с интернет

ypppu пишет:

Помогите разобраться, как на самом деле правильно считать скорость. Имеется файл с известным размером (к примеру 10 мегабайт). Известно время, за которое он загружен (например 100 секунд). Нужно получить скорость в мегабитах в секунду. Как правильно перейти от мегабайт к битам? Насколько я понял, в информационный технология традиционно неправильно считают, что в килобайте 1024 байт, а в мегабайте 1024 килобайт.

1 килобайт(КБ) = 1024 байт(Б)
1 килобит(Кб) = 1000 бит(б)
1 байт = 8 бит
соответственно:
1 КБ = 1024/125 Кб = 8.192 Кб
1 МБ = 131072/15625 Мб = 8.388608 Мб
10 МБ за 100 сек -> 0.1 МБ/сек -> 0.8388608 Мб/сек

14

Re: AHK: Тест скорости соединения с интернет

Александр_, можно для "особо сообразительных" разжевать предпоследнюю строчку?

15 (изменено: Александр_, 2011-12-03 16:56:48)

Re: AHK: Тест скорости соединения с интернет

ypppu пишет:

Александр_, можно для "особо сообразительных" разжевать предпоследнюю строчку?

1 мегабайт(МБ) = 1024 КБ = 2^20 байт = 1048576 байт
1 мегабит(Мб) = 1000 Кб = 10^6 бит (миллион бит)
Чтобы из мегабайтов получить мегабиты, нужно решить уравнение:
1*МБ = x*Мб
1*МБ = x*10^6*бит = x*10^6*байт/8 = х*125000 байт = х*125000 КБ/1024 =х * 15625/128 КБ = х * 15625/128 МБ/1024 = х*15625/131072 МБ
делим обе части на 15625/131072 МБ и получаем х=131072/15625=8.388608. Т.е. что бы из мегабайтов получить мегабиты нужно мегабайты умножить на 8.388608.
Аналогично рассматриваем общий случай:
[приставка]байт=[приставка]бит
2^(10*s)байт=x*10^(3*s)бит -> x=8*2^(10 s)/10^(3 s)=2^(7 s+3)/5^(3 s), где
кило->s=1
мега->s=2
гига->s=3
тера->s=4
и т.д.
P.S. в википедии такие обозначения названы "общепринятыми, но неверными" и рекомендуют использовать приставки МЭК, т.е. вместо килобайта говорить кибибайт, а килобайтом считать 10^6 байт. Короче пока там хрен поймёшь кто как килобайты трактует . ОС Windows трактует "общепринятым" способом.

16

Re: AHK: Тест скорости соединения с интернет

OFF: Скажем так: в кило- и мегабитах меряют скорость передачи данных. Как правило, туда входят не только те данные, которые мы передаём или получаем, но и все технические/служебные данные, потребные для организации приёма/передачи информации по данному протоколу обмена данными по используемым каналам связи. А в браузерах, менеджерах загрузки, клиентах ftp — обычно мы видим уже так называемую эффективную скорость — скорость приёма или передачи конкретного файла, выражаемую уже в «обычных» килобайтах или мегабайтах.

17

Re: AHK: Тест скорости соединения с интернет

Короче говоря, когда речь идёт о битах, всё как у людей. А когда речь о байтах, то:
Кило означает ×2¹º (или ×1024¹)
Мега                ×2²º (или ×1024²)
Гига                 ×2³º (или ×1024³)  и т. д. ?

Соответственно, в КилоБайте 1024×8 = 8192 бита
в МегаБайте 1024²×8 = 8'388'608 бит
в ГигаБайте 1024³×8 = 8'589'934'592 бита, правильно?

18

Re: AHK: Тест скорости соединения с интернет

Пока да.

19

Re: AHK: Тест скорости соединения с интернет

Вот, теперь возвращаюсь к ссылке на Internet Speedtest Function (из сообщения #4).
Расчёт ведётся таким образом:


      filesize := 61779.21875  ;  resolution = 2000x2000
   
SetFormat, Float, 5.0 

   Calc := Round(filesize/((EndTime - StartTime)/1000),0)
   Calc := Round(Calc/1024, 2)

То есть делим миллисекунды на 1000, таким образом переходим к секундам. Затем размер файла делим на секунды (получаем скорость в килобайтах в секунду??). Округляем до целых.
Делим на 1024 (получаем скорость в мегабитах в секунду??). Округляем до сотых.

Известно, что размер файла с разрешением 2000x2000 примерно 7 мегабайт. А в исходных данных я вижу 61 мегабайт. И при чём тут SetFormat, Float, 5.0 ?

20

Re: AHK: Тест скорости соединения с интернет

ypppu пишет:

Известно, что размер файла с разрешением 2000x2000 примерно 7 мегабайт. А в исходных данных я вижу 61 мегабайт.

Тут явно 61779.21875 килобит. Потом мегабиты получаются делением килобитов на 1024, это явный косяк.

ypppu пишет:

И при чём тут SetFormat, Float, 5.0 ?

наверно для красоты

21

Re: AHK: Тест скорости соединения с интернет

Вот мой упрощённый вариант для проверки скорости загрузки. Вроде формулы правильные. Каждые 15 минут скачивает файл с сервера, результаты заносятся в файл history.ini. В дальнейшем можно будет построить график.

#Persistent
SetTimer, Test, 900000

Test:
date = %A_DD% %A_MMM% %A_Hour%:%A_Min%
StartTime := A_TickCount
UrlDownloadToFile, http://xxxx.xxx/speedtest/random2000x2000.jpg, %A_Temp%\speedtest
EndTime := A_TickCount
If !ErrorLevel ; если не произошло ошибок
	{
	FileGetSize, filesize, %A_Temp%\speedtest ; определяется размер скачанного файла в байтах
	Calc := filesize*8/(10**6) ; определяется размер скачанного файла в мегабитах
	Calc := Round(Calc/((EndTime - StartTime)/1000),2) ; определяется средняя скорость загрузки
	FileAppend, %date%%A_Tab%DL %Calc% Mbit/s`r`n, history.ini ; результат записывается в журнал
	}
Else FileAppend,%date%%A_Tab%ERROR`r`n, history.ini
Return

22

Re: AHK: Тест скорости соединения с интернет

Просьба проверить код, да и алгоритм в целом.  Вместо xxxx.xxx нужно подставить адрес, с которого качается файл при тесте скорости через браузер (определяется через firewall).

23 (изменено: alexii, 2011-12-06 12:10:42)

Re: AHK: Тест скорости соединения с интернет

ОФФ.
Я тут нетак давно тоже чуть голову не сломал, как персчитывать Мб/МБ/ и т.п., из википедии следует, что само их обозначение выдает подсказку, что почти всегда подтверждается на практике, если записи делал грамотный специалист.
Байт — Википедия

Я лично приверженец - ГОСТ 8.417-2002. К тому же я - радиолюбитель.

Ссылки на форуме оформляются тэгом «url».

Любители построили Ковчег, а профессионалы - Титаник.

24

Re: AHK: Тест скорости соединения с интернет

Я бы тоже не использовал кило-, мега- и т. д. там, где не следует. Поскольку объём информации везде измеряют в байтах, приходится разбираться.