Получить MAC-адрес при отключении сетевого адаптера?

Есть ли способ получить MAC-адрес, когда сетевой адаптер отключен в .net?

Спасибо заранее,

Ответ 1

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

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

Маршрут WMI здесь не подходит, поскольку он указывает MAC-адрес как null для адаптеров, которые не подключены. Хорошей новостью является то, что маршрут NetworkInterface.GetAllNetworkInterfaces() работает нормально:

// using System.Net.NetworkInformation;
var nics = NetworkInterface.GetAllNetworkInterfaces();

// pick your NIC!
var selectedNic = nics.First();

var macAddress = selectedNic.GetPhysicalAddress().ToString();

Ответ 2

Вы можете использовать WMI:

public static string GetMACAddress()
    {
        ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
        ManagementObjectCollection moc = mc.GetInstances();
        string MACAddress=String.Empty;
        foreach(ManagementObject mo in moc)
        {
            if(MACAddress==String.Empty)  // only return MAC Address from first card
            {
                MACAddress= mo["MacAddress"].ToString() ;
            }
            mo.Dispose();
        }

        return MACAddress;
    }