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

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

13
задан Azhar 12 August 2010 в 05:39
поделиться

3 ответа

Я не уверен, что вы имеете в виду под клиентской машиной , потому что вы можете получить только 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
12
ответ дан 1 December 2019 в 22:57
поделиться

Это должно работать в 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
3
ответ дан 1 December 2019 в 22:57
поделиться

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

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"]);
    }
5
ответ дан 1 December 2019 в 22:57
поделиться