我正在尝试在我的 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();
}
}
}