Determining the network connection link speed

2019-02-14 07:17发布

How do I programmatically determine the network connection link speed for an active network connection - like Task Manager shows you in the Networking tab? I'm not really after the bandwidth available, just a figure for the current connection, e.g. 54Mbps, 100Mbps etc.

3条回答
beautiful°
2楼-- · 2019-02-14 07:44

In the end I found the Win32_PerfRawData_Tcpip_NetworkInterface WMI class, as I need to support legacy platforms which, unfortunately, the Win32_NetworkAdapter doesn't do. Win32_PerfRawData_Tcpip_NetworkInterface has a CurrentBandwidth property which gives me what I need on all required platforms (I realise I said I didn't need "bandwidth" but its acceptable and appears to return the "nominal bandwidth" of the adapter anyway).

Thanks to all those who posted, pointing me in the right direction.

查看更多
成全新的幸福
3楼-- · 2019-02-14 07:49

Win32_NetworkAdapter WMI class can help you (Speed property). It returns the value 54000000 for my WiFi adapter connected to a WiFi-g access point.

查看更多
ゆ 、 Hurt°
4楼-- · 2019-02-14 08:01

.NET way how to know adapter speed is

IPGlobalProperties computerProperties = IPGlobalProperties.GetIPGlobalProperties();
NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces();
if ( nics != null )
    for (int i = 0; i < nics.Length; i++)
        Console.WriteLine("Adapter '{0}' speed : {1}", nics[i].Name, nics[i].Speed);

Some adapters are tunnels, so their speed will be returned as 0. Read NetworkInterface documentation on the MSDN for more information.

查看更多
登录 后发表回答