如何在c#和vb.net中获取客户端机器的MAC地址

如何在c#和vb.net中获取客户端机器的MAC地址

我不确定客户端机器的含义,因为您只能获取应用程序执行的机器的NIC的MAC地址。

为此,您可以使用ManagementClass :

C#:

using (var mc = new ManagementClass("Win32_NetworkAdapterConfiguration")) { foreach(ManagementObject mo in mc.GetInstances()) { Console.WriteLine(mo["MacAddress"].ToString()); } } 

VB.NET:

 Using mc As New ManagementClass("Win32_NetworkAdapterConfiguration") For Each mo As ManagementObject In mc.GetInstances() Console.WriteLine(mo("MacAddress").ToString()) Next End Using 

想要的答案是

 ManagementClass objMC = new ManagementClass("Win32_NetworkAdapterConfiguration"); ManagementObjectCollection objMOC = objMC.GetInstances(); foreach (ManagementObject objMO in objMOC) { if (!(bool)objMO["ipEnabled"]) continue; Console.WriteLine((string)objMO["MACAddress"]); } 

这应该在vb中工作 – 我相信c#接近于此
导入以下命名空间。

 Imports System.Management 

声明以下对象变量。

 Dim objMOS As ManagementObjectSearcher Dim objMOC As Management.ManagementObjectCollection Dim objMO As Management.ManagementObject 

执行查询。

 objMOS = New ManagementObjectSearcher("Select * From Win32_NetworkAdapter") objMOC = objMOS.Get Get MAC address from the query result. For Each objMO In objMOC MessageBox.Show(objMO("MACAddress")) Next 

处置对象变量。

 objMOS.Dispose() objMOS = Nothing objMO.Dispose() objMO = Nothing