如果以太网连接是全双工或半双工,我试图在C#Winforms应用程序中显示。我不确定是否要检查任何API。我一直在使用下面的代码来获取NetworkInterfaces
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);
}
上面的代码为我提供了适配器的描述,速度,NetworkInterfaceType,OperationalStatus等。我要查找的是连接是全双工还是半双工。
答案 0 :(得分:1)
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();
}
}
}