如何从Windows程序访问类似netstat的以太网统计信息

Den*_*jan 5 c windows networking network-monitoring ethernet

如何从netstat -e等C/C++代码访问以太网统计信息?

Interface Statistics

                       Received            Sent

Bytes                      21010071        15425579
Unicast packets               95512           94166
Non-unicast packets           12510               7
Discards                          0               0
Errors                            0               3
Unknown protocols                 0
Run Code Online (Sandbox Code Playgroud)

Tom*_*lak 6

WMI将提供这些读数:

SELECT * FROM Win32_PerfFormattedData_Tcpip_IP
SELECT * FROM Win32_PerfFormattedData_Tcpip_TCP
SELECT * FROM Win32_PerfFormattedData_Tcpip_UDP
SELECT * FROM Win32_PerfFormattedData_Tcpip_ICMP
SELECT * FROM Win32_PerfFormattedData_Tcpip_Networkinterface
Run Code Online (Sandbox Code Playgroud)

这些类在Windows XP或更高版本上可用.您可能必须在Windows 2000上退出匹配的"Win32_PerfRawData"类,并在显示输出之前再做一些数学运算.

在MSDN中查找有关所有这些文档的文档.


Rod*_*ddy 2

网络统计的一个好起点是Windows IPHelper 函数中的GetIpStatistics调用。

还有其他几种可能更便携的方法:-

  • SNMP。需要在计算机上启用 SNMP,但显然也可以用于检索远程计算机的统计信息。
  • 将“netstat”的输出通过管道传输到您的应用程序中,然后从文本中取消选取值。