Эта статья описывает, как можно автоматизировать проверку скорости (пропускной способности) интернета на Windows компьютере.

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

Может быть полезно и на клиентском компьютере, например, для проверки интернет соединения перед выгрузкой файла резервной копии на сервер – в случае медленного интернета дать сообщение пользователю и не пытаться выгружать большой файл.

Программа Ookla SpeedTest для командной строки Windows

Популярный онлайн сервис по проверке интернет соединения Ooka SpeedTest предлагает также консольную программу для выполнения этой же задачи. Программа доступна для различных платформ, редакция для Windows выполнена в виде exe файла и доступна для скачивания на официальном сайте speedtest.net.

Полностью возможности программы описаны в приложенной к ней справке, а для автоматической проверки удобно использовать режим вывода в TSV. (Tab Separated Values) В программе есть и другие варианты вывода информации, но TSV – самый простой для обработки в BAT.

В этом режиме программа выдаёт результаты измерения в одну строку значений, разделенных символом табуляции (TAB), например, так:

Telenet Solution Ltd - Moscow   21110   2.88    0.875   0       1958712 1201824 15619051        15137826        https://www.speedtest.net/result/c/cad67183-6e76-4146-a8f6-a39aff20290d 1

Значения скорости скачивания (download) и отдачи (upload) находятся в 6 и 7 столбцах (1958712 и 1201824 в этом примере). Значения указаны в байтах в секунду.

Можно анализировать и вывод программы в режиме, предназначенном для просмотра человеком (human readable):

C:\Temp>speedtest.exe --precision=0 --progress=no --unit=Mbps

   Speedtest by Ookla

     Server: Telenet Solution Ltd - Moscow (id = 21110)
        ISP: OJSC Comcor
    Latency:     2.96 ms   (1.63 ms jitter)
   Download:       17 Mbps (data used: 12.0 MB )
     Upload:       15 Mbps (data used: 21.5 MB )
Packet Loss:     0.0%
 Result URL: https://www.speedtest.net/result/c/f77a6aa9-1823-4f92-a817-f33af221ad9b

Здесь значения скорости выводятся в строках Download и Upload.

Командный файл

Чтобы в bat файле узнать скорость загрузки и отдачи, нужно считать значения Download и Upload, перевести их в Мбит/с как самый популярный вариант и затем сравнить с «хорошими» значениями. Полный код bat файлов находится по ссылке в конце статьи.

Измерение скорости загрузки и отдачи по выводу в tsv

Эта строка bat файла вызывает speedtest.exe, считывает значения из 6-го и 7-го столбцов и переводит из байт/с в Мбит/с

for /f "tokens=6,7 delims=	" %%a in ('speedtest.exe --format=tsv') do set /a dl=8*%%a/1048576 && set /a ul=8*%%b/1048576

После выполнения этой команды в переменные %dl% и %ul% будут записаны значения Download и Upload. Например, так их можно вывести на экран.

echo Download %dl% Mbps, Upload %ul% Mbps

Измерение скорости загрузки и отдачи по выводу human readable

Получить значения Download и Upload можно такими командами в bat файле:

for /f "tokens=1-3" %%a in ('speedtest.exe --precision=0 --progress=no --unit=Mbps') do (
if "%%b" == "Download:" set dl=%%c
if "%%b" == "Upload:" set ul=%%c
)

Переменные %dl% и %ul% будут содержать значения значения сразу в Мбит/с.

Проверка значений и вывод результата

После того, как значения получены, можно сравнить их с нормальными с помощью оператора IF. Проверять нужно оба значения (скачивание и отдача), используя логику И / ИЛИ (см. Операторы AND / OR в bat файлах).

set nbw=16
if %dl% GEQ %nbw% (nhcolor 0A Нормальная скорость загрузки %dl% Мбит/с) else (nhcolor 0C Низкая скорость загрузки %dl% Мбит/с)
if %ul% GEQ %nbw% (nhcolor 0A Нормальная скорость отдачи %ul% Мбит/с) else (nhcolor 0C Низкая скорость отдачи %ul% Мбит/с)

Для вывода используется nhcolor вместо echo, потому что позволяет задать цвет текст текста – зелёный или красный, в зависимости от результата сравнения.

Показ всплывающего окна

Используя программу nhmb, bat файл сможет показывать всплывающее окно вместо вывода текста в консоль:

if %dl% GEQ %nbw% (set dlm=Нормальная скорость загрузки %dl% Мбит/с ) else (set dlm=Низкая скорость загрузки %dl% Мбит/с)
if %ul% GEQ %nbw% (set ulm=Нормальная скорость отдачи %ul% Мбит/с) else (set ulm=Низкая скорость отдачи %ul% Мбит/с)
set flags=error
if %dl% GEQ %nbw% if %ul% GEQ %nbw% set flags=information
nhmb "%dlm%\n%ulm%" "Проверка скорости интернета" "%flags%"

Текст сообщения будет содержать измеренные значения скорости, а значок будет показывать, есть ли отклонения:

Отправка смс или электронной почты

Для уведомления на мобильный можно добавить в bat файл вызов программы nhsms, которая отправит смс сообщение администратору через подключенный сотовый модем. Этот вариант ориентирован на сервера.

if %dl% GEQ %nbw% (set dlm=Нормальная скорость загрузки %dl% Мбит/с ) else (set dlm=Низкая скорость загрузки %dl% Мбит/с)
if %ul% GEQ %nbw% (set ulm=Нормальная скорость отдачи %ul% Мбит/с) else (set ulm=Низкая скорость отдачи %ul% Мбит/с)
nhsms "%dlm%. %ulm%"

Ну и, конечно, электронная почта – чтобы bat файл при плохих показателях отправлял письмо администратору. Как запрограммировать отправку почты, см. Отправить емейл из bat файла по SMTP.

Файлы для скачивания

Программу speedtest для Windows можно скачать со на страницы SPEEDTEST® CLI официального сайта SpeedTest На момент написания статьи доступна версия 1.1.1 (ookla-speedtest-1.1.1-win64.zip).

Также копия программы доступна для скачивания с Яндекс.Диска. По этой же ссылке находятся bat файлы и программы, описанные в этой статье.

  • ish.bat – измерение по выводу speedtest в режиме human readable, выдает результат в текстовом виде с выделение цвета (nhcolor)
  • ish-mb.bat – измерение по выводу speedtest в режиме human readable, выдает результат во всплывающем окне
  • ist.bat – измерение по выводу speedtest в режиме tsv, выдает результат в текстовом виде с выделение цвета (nhcolor)
  • ist-mb.bat – измерение по выводу speedtest в режиме tsv, выдает результат во всплывающем окне

Узнать больше

Операторы AND / OR в bat файлах

Программа nhcolor для изменения цвета текста в командной строке

Программа nhmb для вывода всплывающего окна MessageBox

Программа nhsms для отправки смс сообщений через сотовый модем

Отправить емейл из bat файла по SMTP

Как проверить скорость интернета в bat файле
Метки:

Добавить комментарий

Ваш адрес email не будет опубликован.