Показать полную графическую версию : [решено] Определить скорость подключения к интернету
Подскажите пожалуйста, как определить скорость подключения к интернету и в зависимости от значения выполнить команды.
Организовать проверку значения скорости в цикле.
Заранее благодарен.
Уже пробовал следующее:
- AdapterWatch от nirsoft (https://www.nirsoft.net/utils/awatch.html) - через консоль почему-то не экспортирует значение Calculated Speed Of Received Data в файл, с которым можно было бы работать дальше, хотя в gui показывает исправно.
- Используя netstat (http://www.cyberforum.ru/post3974479.html), похоже требуется адаптация, при запуске пишет "используемая скорость - 0 Байт/сек"
- Консольную утилиту ookla-speedtest (https://dl.bintray.com/ookla/download/ookla-speedtest-1.0.0-win64.zip), потребляет достаточно много трафика, и не совсем понятно как считать данные.
https://s19.directupload.net/images/200103/h6v8wuqe.png
CMD/BAT
Как проверить скорость загрузки в приложении utorrent и в зависимости от значения выполнить команду
https://s19.directupload.net/images/191229/fsss8wam.png
https://s19.directupload.net/images/191229/9y8b343b.png
mtsg, расшифруйте Ваше понимание словосочетания «скорость интернет-соединения для приложения».
Iska, имеется ввиду скорость загрузки для utorrent
DJ Mogarych
30-12-2019, 09:40
if SPEED>10 goto ok
if SPEED<10 goto reconnect »
Больше и меньше 10 чего?
Обновил задачу в первом сообщении
Обновил задачу в первом сообщении »Вы чем там меряетесь, пипками, пипетками, титьками или пингвинками?
if SPEED>10 goto ok
if SPEED<10 goto reconnect »
Конкретика ещё та.
Если больше 10 слов в минуту, всё хокей, меньше -бежим обратно.
Обновил задачу в первом сообщении »
Полный набор букв покажите, что вы там налепили
Полный набор букв покажите, что вы там налепили »
Все что есть написал в первом сообщении, ничего другого к сожалению нет :)
Задача в том как определить текущее значение скорости.
mtsg, в общем и целом, если нет какой-то возможности взаимодействовать с μTorrent (я лично о таковой не знаю), задача не решаема.
Iska, а как можно определить текущую скорость подключения к интернету?
DJ Mogarych
03-01-2020, 15:05
В принципе, можно вот такой колхоз сделать, но надо уточнять кол-во интерфейсов, которые обмениваются трафиком, либо вообще делать фильтр по имени интерфейса. Это будет нормально работать при одном активном интерфейсе.
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 мегабит в секунду, то затея не сработает.
greg zakharov
03-01-2020, 23:12
Измерение скорости интернет соединения - очень относительная единица, если учесть все нюансы устройства сети. А раз так можно и curl'ом обойтись. Например:
curl -H "Range: bytes=0-31457280" http://mirror.yandex.ru/openbsd/6.6/i386/install66.iso -o nul -sw "%{speed_download}"
Если нужно определить текущую скорость загрузки uTorrent, то:
1. это следует отобразить в первом сообщении
2. скорость можно достать из заголовка uTorrent на том-же Powershell (в нём ни бум-бум, примеры есть в сети) или AutoIt. (WSH вроде бы в пролёте)
В принципе, можно вот такой колхоз сделать, но надо уточнять кол-во интерфейсов, которые обмениваются трафиком, либо вообще делать фильтр по имени интерфейса. Это будет нормально работать при одном активном интерфейсе. »
Спасибо! Вроде работает, задействованный интерфейс только один(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
}
Измерение скорости интернет соединения - очень относительная единица, если учесть все нюансы устройства сети. А раз так можно и curl'ом обойтись. Например: »
А как можно задать значение переменной равной "%{speed_download}"? чтобы потом с ней можно было работать в bat файле
greg zakharov
04-01-2020, 16:13
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
самый простой вариант: »
Спасибо! Перед выводом скорости почему-то пишет "отсутствующий оператор", это с чем может быть связано?
https://i.imgur.com/tlQYGCa.png
Но перед выводом скорости почему-то пишет "отсутствующий оператор", это с чем может быть связано? »
Видимо, так set /a реагирует на десятичную точку. Можете добавить в код выделенное:
for /f %%i in ('!%~1!') do 2>nul set /a "%~2=%%~i"
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.