Инструменты пользователя

Инструменты сайта


ru:autorun:documentation:sysinfo_func_getnetinterfaceinfo

GetNetInterfaceInfo

GetNetInterfaceInfo(<interface>, <id>)

Получает различную информацию по сетевому адаптеру. Может использоваться для получения текущей скорости передачи данных (см. пример).

Параметры

interfaceИндекс интерфейса, для которого требуется получать информацию. Список всех интерфейсов с их номерами выводит команда «route print». Для удобства использования его можно получить с помощью функции GetNetInterface.
idТекстовый идентификатор запрашиваемых данных. Возможные идентификаторы перечислены в таблице ниже.

Поддерживаемые идентификаторы

ИдентификаторОписание
RecvКоличество байт, полученных с момента инициализации сетевого адаптера.
SendКоличество байт, полученных с момента инициализации сетевого адаптера.
SpeedФизическая скорость интерфейса (например, 1000 Мбит/с)
MTUMaximum Transmission Unit
TypeТип интерфейса. Возможные значения можно посмотреть на сайте Microsoft.
NameСистемное имя интерфейса.
DescrОписание интерфейса.
MACФизический адрес интерфейса.

Примечания

В случае если возникла ошибка при получении, функция вернет пустую строку, а макрос ERROR будет установлен в 1.

Пример

Пример получения скорости приёма и передачи данных и вывода их в заголовок Total Commander.

LoadLibrary "Plugins\Autorun_Sysinfo.dll"
LoadLibrary "Plugins\Autorun_Runtime.dll"
 
# Сохранение исходного заголовка
Global sTitle = WinGetText()
 
RunThread UpdateTitle
 
Func UpdateTitle
   Local nRecvSpeed, nSendSpeed
   While 1
      # Такая задержка позволяет получить скорость за 1с
      Sleep 1000
      GetNetSpeed(nRecvSpeed, nSendSpeed)
      WinSetText(sTitle & " [ " & Round(nRecvSpeed) & " kb/s | " & Round(nSendSpeed) & " kb/s ]")
   Wend
EndFunc
 
# вспомогательная функция для расчёта скорости
Func GetNetSpeed(ByRef nRecvSpeed, ByRef nSendSpeed)
    Static nIntfIdx= GetNetInterface()
    If error Then Return
    Static nPrevRecv = GetNetInterfaceInfo(nIntfIdx, 'Recv'), nPrevSend = GetNetInterfaceInfo(nIntfIdx, 'Sent')
    Local nRecv = GetNetInterfaceInfo(nIntfIdx, 'Recv')
    Local nSend = GetNetInterfaceInfo(nIntfIdx, 'Sent')
    nRecvSpeed = Abs(nRecv - nPrevRecv) / 1024
    nSendSpeed = Abs(nSend - nPrevSend) / 1024
    nPrevRecv = nRecv
    nPrevSend = nSend
EndFunc
ru/autorun/documentation/sysinfo_func_getnetinterfaceinfo.txt · Последнее изменение: 2024/03/15 13:00 — loopback

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki