如何检查网络连接是全双工还是半双工



我正在尝试在我的 C# Winforms 应用程序中显示以太网连接是全双工还是半双工。我不确定我们是否有任何 API 来检查这一点。我一直在使用以下代码来获取网络接口

NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();
 foreach (NetworkInterface adapter in adapters)
        {
            IPInterfaceProperties properties = adapter.GetIPProperties();
            IPv4InterfaceStatistics stats = adapter.GetIPv4Statistics();
            Console.WriteLine(adapter.Description);
            Console.WriteLine("Speed .....: {0}",adapter.Speed);                    
        }

上面的代码给了我适配器描述,速度,网络接口类型,操作状态等。我要查找的是连接是全双工还是半双工。

using System;
using System.Management;
namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            //string deviceName = "TP-Link Wireless N PCI Express Adapter";
            ManagementScope scope = new ManagementScope("\\.\ROOT\StandardCimv2");
            ObjectQuery query = new ObjectQuery($"SELECT * FROM MSFT_NetAdapter");// WHERE DriverDescription = "{deviceName}"");
            using (ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query))
            {
                using (ManagementObjectCollection queryCollection = searcher.Get())
                {
                    foreach (ManagementObject m in queryCollection)
                    {
                        Console.WriteLine($"{m["DriverDescription"]} : {m["FullDuplex"]}");
                    }
                }
            }
            Console.ReadKey();
        }
    }
}

最新更新