C# WMI:正在获取接口名称、状态网络
你好 在netsh界面显示界面中有4个类别列 管理状态已启用 断开或连接的状态 专用类型 接口名称以太网2或Wi-Fi或以太网 问题1: 如何在State=Connected的位置获取接口名C# WMI:正在获取接口名称、状态网络,c#,networking,C#,Networking,你好 在netsh界面显示界面中有4个类别列 管理状态已启用 断开或连接的状态 专用类型 接口名称以太网2或Wi-Fi或以太网 问题1: 如何在State=Connected的位置获取接口名 ManagementClass mc = new ManagementClass("Win32_NetworkAdapter"); foreach (ManagementObject mo in mc.GetInstances()) { int index = Convert.ToInt32(mo[
ManagementClass mc = new ManagementClass("Win32_NetworkAdapter");
foreach (ManagementObject mo in mc.GetInstances())
{
int index = Convert.ToInt32(mo["Index"]);
string name = mo["NetConnectionID"] as string;
if (!string.IsNullOrEmpty(name))
MessageBox.Show(name);
//textBox1.Text += name + Environment.NewLine;
}
我这里有一个图像,我想作为输出。
谢谢大家。您可能需要按NetConnectionStatus==2进行筛选
网络连接状态
断开0
连接1
连接2
断开3
硬件不存在4
硬件禁用5
硬件故障6
媒体断开连接7
认证8
身份验证成功9
身份验证失败10
无效地址11
所需证件12
可用属性及其可能值的列表
var mc = new ManagementClass("Win32_NetworkAdapter");
mc.GetInstances()
.OfType<ManagementObject>()
.Where(mo => !string.IsNullOrEmpty(mo["NetConnectionID"] as string)) // has a ConnectionId
.ToList()
.ForEach(mo => Debug.WriteLine($"NetConnectionStatus = {mo["NetConnectionStatus"]} / NetConnectionID={mo["NetConnectionID"]} / Name={mo["Name"]}"));
//Result:
// NetConnectionStatus=7 / NetConnectionID=Ethernet / Name=Intel(R) Ethernet Connection (5) I219-LM
// NetConnectionStatus=7 / NetConnectionID=WiFi / Name=Intel(R) Dual Band Wireless-AC 8265
// NetConnectionStatus=7 / NetConnectionID=Bluetooth Network Connection / Name=Bluetooth Device (Personal Area Network)
// NetConnectionStatus=2 / NetConnectionID=VMware Network Adapter VMnet1 / Name=VMware Virtual Ethernet Adapter for VMnet1
// NetConnectionStatus=2 / NetConnectionID=VMware Network Adapter VMnet8 / Name=VMware Virtual Ethernet Adapter for VMnet8