Как получить MAC-адрес клиентской машины в С# и vb.net

Как получить MAC-адрес клиентской машины в С# и vb.net

Ответы

Ответ 1

Я не уверен, что вы подразумеваете под машиной клиента, потому что вы можете получить только MAC-адрес сетевого адаптера компьютера, на котором выполняется ваше приложение.

Для этого вы можете использовать ManagementClass:

С#:

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

Ответ 2

желаемый ответ

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"]);
    }

Ответ 3

Это должно работать в vb - я уверен, что С# близок к этому | Импортируйте следующее пространство имен.

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