Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] Определить скорость подключения к интернету

Ответить
Настройки темы
Любой язык - [решено] Определить скорость подключения к интернету

Новый участник


Сообщения: 8
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: mtsg
Дата: 04-01-2020
Подскажите пожалуйста, как определить скорость подключения к интернету и в зависимости от значения выполнить команды.
Организовать проверку значения скорости в цикле.
Заранее благодарен.

Уже пробовал следующее:
- AdapterWatch от nirsoft - через консоль почему-то не экспортирует значение Calculated Speed Of Received Data в файл, с которым можно было бы работать дальше, хотя в gui показывает исправно.
- Используя netstat, похоже требуется адаптация, при запуске пишет "используемая скорость - 0 Байт/сек"
- Консольную утилиту ookla-speedtest, потребляет достаточно много трафика, и не совсем понятно как считать данные.


Первоначальная задача по определению скорости загрузки в приложении

CMD/BAT
Как проверить скорость загрузки в приложении utorrent и в зависимости от значения выполнить команду






Отправлено: 10:58, 29-12-2019

 

Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6705
Благодарности: 1576

Профиль | Отправить PM | Цитировать


В принципе, можно вот такой колхоз сделать, но надо уточнять кол-во интерфейсов, которые обмениваются трафиком, либо вообще делать фильтр по имени интерфейса. Это будет нормально работать при одном активном интерфейсе.

Powershell:
Код: Выделить весь код
$Mbps = ((gwmi Win32_PerfFormattedData_Tcpip_NetworkInterface |
select BytesTotalPersec,CurrentBandwidth,PacketsPersec |? PacketsPersec -gt 0).BytesTotalPersec) * 8 / 1024 / 1024

if ($Mbps -lt 10) {
kill -name utorrent
start "$env:appdata\uTorrent\utorrent.exe"
}
И опять же, это измерение общего трафика, т.е., не только торрента. Иными словами, если что-то другое будет потреблять трафик больше 10 мегабит в секунду, то затея не сработает.

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:05, 03-01-2020 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Забанен


Сообщения: 793
Благодарности: 260

Профиль | Цитировать


Измерение скорости интернет соединения - очень относительная единица, если учесть все нюансы устройства сети. А раз так можно и curl'ом обойтись. Например:
Код: Выделить весь код
curl -H "Range: bytes=0-31457280" http://mirror.yandex.ru/openbsd/6.6/i386/install66.iso -o nul -sw "%{speed_download}"
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:12, 03-01-2020 | #12


Старожил


Сообщения: 352
Благодарности: 193

Профиль | Отправить PM | Цитировать


Если нужно определить текущую скорость загрузки uTorrent, то:
1. это следует отобразить в первом сообщении
2. скорость можно достать из заголовка uTorrent на том-же Powershell (в нём ни бум-бум, примеры есть в сети) или AutoIt. (WSH вроде бы в пролёте)
Это сообщение посчитали полезным следующие участники:

Отправлено: 00:41, 04-01-2020 | #13


Новый участник


Сообщения: 8
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата DJ Mogarych:
В принципе, можно вот такой колхоз сделать, но надо уточнять кол-во интерфейсов, которые обмениваются трафиком, либо вообще делать фильтр по имени интерфейса. Это будет нормально работать при одном активном интерфейсе. »
Спасибо! Вроде работает, задействованный интерфейс только один(wifi), в итоге получилось следующее(возможно не очень грамотно):
Скрытый текст

Код: Выделить весь код
[int]$i = 1
while ($i -eq 1) {

$Mbps = ((gwmi Win32_PerfFormattedData_Tcpip_NetworkInterface |
select BytesTotalPersec,CurrentBandwidth,PacketsPersec |? PacketsPersec -gt 0).BytesTotalPersec) * 8 / 1024 / 1024
Write-Host Скорость загрузки $Mbps Mb/s

if ($Mbps -lt 2) {
	Write-Host Отключение сетевого интерфейса
	netsh interface set interface name="wifi" admin=DISABLED
	Write-Host Ждем 5 секунд
	Wait-Event -Timeout 5
	Write-Host Включение сетевого интерфейса
	netsh interface set interface name="wifi" admin=ENABLED
}

Write-Host Ждем 30 секунд
Wait-Event -Timeout 30
}


Цитата greg zakharov:
Измерение скорости интернет соединения - очень относительная единица, если учесть все нюансы устройства сети. А раз так можно и curl'ом обойтись. Например: »
А как можно задать значение переменной равной "%{speed_download}"? чтобы потом с ней можно было работать в bat файле

Последний раз редактировалось mtsg, 04-01-2020 в 11:19.


Отправлено: 10:31, 04-01-2020 | #14


Забанен


Сообщения: 793
Благодарности: 260

Профиль | Цитировать


mtsg, самый простой вариант:
Код: Выделить весь код
@echo off
  setlocal enabledelayedexpansion
    set "url=http://mirror.yandex.ru/openbsd/6.6/i386/install66.iso"
    set "exe=curl -H "Range: bytes=0-31457280" %url% -o nul -sw "%%{speed_download}""
    call:dynvar exe speed
    echo %speed%
  endlocal
exit /b

:: Синтаксис
::    call:dynvar <eval_code> <var_name>
:dynvar
  for /f %%i in ('!%~1!') do set /a "%~2=%%~i"
exit /b
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:13, 04-01-2020 | #15


Новый участник


Сообщения: 8
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата greg zakharov:
самый простой вариант: »
Спасибо! Перед выводом скорости почему-то пишет "отсутствующий оператор", это с чем может быть связано?

Последний раз редактировалось mtsg, 05-01-2020 в 03:05.


Отправлено: 02:35, 05-01-2020 | #16


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Цитата mtsg:
Но перед выводом скорости почему-то пишет "отсутствующий оператор", это с чем может быть связано? »
Видимо, так set /a реагирует на десятичную точку. Можете добавить в код выделенное:
Код: Выделить весь код
for /f %%i in ('!%~1!') do 2>nul set /a "%~2=%%~i"
Это сообщение посчитали полезным следующие участники:

Отправлено: 02:56, 05-01-2020 | #17



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] Определить скорость подключения к интернету

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBS/WSH/JS - Скрипт для создания интернет-соединения BigBoo Скриптовые языки администрирования Windows 5 09-02-2012 23:45
Интернет - Не сохраняет пароль для интернет соединения neoo Microsoft Windows 7 4 29-07-2011 10:32
Интернет - Сервисы для измерения скорости Интернет-канала Diam0nd Программное обеспечение Windows 18 20-05-2011 14:32
[решено] Измерение текущей скорости интернет-соединения. madmasles AutoIt 5 12-12-2009 02:24
CMD/BAT - Проверка интернет соединения hse2000 Скриптовые языки администрирования Windows 2 28-07-2009 12:05




 
Переход