Получить 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;
}