Как получить MAC-адрес клиентской машины в c# и vb.net
Я не уверен, что вы имеете в виду под клиентской машиной , потому что вы можете получить только 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
Это должно работать в 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
Желаемый ответ
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"]);
}