使用 C#/.NET 重置网络连接的最佳方法是什么?
我的公司有几台机器与客户通过各种方式(3G、wifi、以太网电缆)连接,有时(尤其是使用 3G)向 Windows 报告他们在没有连接时仍然连接。我有办法检查连接是否真的存在,但我正在努力重置它们。这是一个问题:
var searcher = new ManagementObjectSearcher("select * from Win32_NetworkAdapter");
var managementObject = searcher.Get();
foreach (ManagementObject obj in managementObject)
{
var name = obj.Properties["Name"].Value.ToString();
Console.WriteLine(name);
obj.InvokeMethod("Disable", null);
obj.InvokeMethod("Enable", null);
}
如您所见,这将通过所有网络适配器并重置它们,我不想这样做。此外,一些适配器不接受 null 参数。
我可以得到我想要的 NetworkInterface 对象:
var interfaces = NetworkInterface.GetAllNetworkInterfaces().Where(ni => ni.IsReceiveOnly == false &&
ni.OperationalStatus == OperationalStatus.Up && ni.NetworkInterfaceType != NetworkInterfaceType.Loopback);
但是 NetworkInterface 类似乎没有 Start()、Stop()、Reset() 等方法。我从这里去哪里?