networking - 在 Windows 上以编程方式检测连接的网络速度

标签 networking wmi ethernet

如何检测我的 NIC 建立的以太网连接类型?也就是说,我的 NIC 是一个千兆以太网设备,但由于它是自动感应的,它可能以千兆速度或快速以太网速度连接。

我如何知道它的连接速度是多少?

我尝试使用 WMI 的 Win32_NetworkAdapterCIM_NetworkAdapter,甚至 wmic NET get Name,Speed,但它们都返回空白表示 Speed。

顺便说一下,我使用的是 Windows XP Pro SP3。但我想要一个也适用于 Windows Server 2003(标准版和企业版)、Windows Server 2008 和 Windows Server 2008 R2 的解决方案。

最佳答案

一个代号为“mystifeid”的神秘人解决了这个网站上的这个谜题,第三个帖子如下: http://social.msdn.microsoft.com/Forums/uk-UA/scripting/thread/e3936dff-7395-4a6a-ab35-aa1aab0bcd71

这是他们可爱的代码:

Dim strQuery, strQuery2, objLocator, objWMI, objItem, objItem2, colItems, colItems2, resultString, nicName
strQuery = "SELECT * FROM Win32_PerfFormattedData_Tcpip_NetworkInterface"
strQuery2 = "SELECT * FROM Win32_NetworkAdapter"
Set objLocator = CreateObject( "WbemScripting.SWbemLocator" )
Set objWMI = objLocator.ConnectServer( ".", "root\CIMV2" )
objWMI.Security_.ImpersonationLevel = 3
Set colItems2 = objWMI.ExecQuery( strQuery2, "WQL", 0 )
Set colItems = objWMI.ExecQuery( strQuery, "WQL", 0 )
resultString = ""
For Each objItem2 In colItems2
 If objItem2.NetConnectionStatus = 2 Then
  nicName = Mid(objItem2.Name, 1, 5)
  resultString = resultString & "Adapter Name : " & objItem2.Name & VbCrLf
  resultString = resultString & "MAC Address : " & objItem2.MACAddress & VbCrLf
  For Each objItem In colItems
   If Mid(objItem.Name, 1, 5) = nicName Then
    resultString = resultString & "CurrentBandwidth : " & objItem.CurrentBandwidth & VbCrLf
   End If
  Next
 End If
Next
Set objLocator = Nothing
Set objWMI = Nothing
Set colItems = Nothing
Set colItems2 = Nothing
WScript.Echo resultString

PS- 我会尽快针对 Win7 和 Win2008 对其进行审核并让所有人知道。

关于networking - 在 Windows 上以编程方式检测连接的网络速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13134472/

相关文章:

linux-kernel - 多网卡同驱动——性能瓶颈?

c++ - 序列化优于 sockets c++ 的优势

c# - 通过 WMI 问题从 ASP.NET 重新启动应用程序池

delphi - 如何使用 Delphi 和 WMI 查找可用并行端口及其 I/O 地址

c# - TimeStamp_Sys100NS 从 Win32_PerfFormattedData_PerfProc_Process wmi 返回 null

linux - 如何测试 linux NAPI 功能?

c++ - Mac 地址 c++ osx

amazon-web-services - 如何将私有(private) CIDR 范围拆分到三个可用区?

android - 本地网络中的设备发现

java - 处理字符串 : Java client & C++ server 的正确方法是什么