Получите накопленные байты, отправленные и полученные от NIC - PullRequest
2 голосов
/ 05 апреля 2009

Есть ли какой-нибудь простой способ (возможно, с помощью сценария) получить совокупные байты, отправленные и полученные от сетевой карты на Windows 2008 Server?

Например, сетевая карта в настоящее время показывает около 18 МБ отправленных данных и 765 МБ полученных данных.

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

Я знаю, что могу использовать PRTG для получения текущих данных об использовании по SNMP, но это будет только среднее значение, поскольку датчик проверяет каждые 60 секунд.

Ответы [ 5 ]

7 голосов
/ 09 апреля 2009

В Powershell (CTP2v3) помогут следующие команды. (У меня три интерфейса). Однако после перезапуска сетевой карты эта информация обнуляется.

$computer = "LocalHost" ;
$namespace = "root\CIMV2" ;
$Tcpip_NI = Get-WmiObject -class Win32_PerfRawData_Tcpip_NetworkInterface -computername $computer -namespace $namespace ;
$Tcpip_NI | Select BytesReceivedPersec,BytesSentPersec,BytesTotalPersec ;

$netsh_interface_stats = netsh interface ip show interface ;
$netsh_interface_stats | Select-string "In Octets" ;
$netsh_interface_stats | Select-string "Out Octets" ;
2 голосов
/ 05 апреля 2009

Помогает ли netstat -e? Кажется, не различает сетевые адаптеры, хотя вы можете смешивать трафик интерфейса обслуживания с ним.

В противном случае это звучит как что-то для WMI и Powershell.

1 голос
/ 05 апреля 2009

Вы можете использовать сценарий IronRuby или IronPython и использовать пространство имен System.Net.NetworkInformation , хотя было бы проще создать быстрое консольное приложение на C # или VB.Net.

Редактировать: вероятно, вам нужен класс IPv4InterfaceStatistics .

0 голосов
/ 11 июня 2013

Просто краткая заметка:
Следующее прекрасно работает для меня - напомнить, что число оборачивается отрицательно, и для этого вам нужно будет создать некоторую логику. Я работаю в смешанной среде и не могу использовать PowerShell для всего, поэтому мое решение - использовать wmic: wmic Win32_PerfRawData_Tcpip_NetworkInterface Get BytesReceivedPersec, BytesSentPersec, BytesTotalPersec

0 голосов
/ 07 апреля 2009

Я нашел существующее решение для собственной проблемы, PRTG Network Monitor V7 (http://www.paessler.com/prtg).

Имеет датчики для взаимодействия с WMI и получения данных сетевой карты. Очень мило :) 1004 *

...