Есть ли способ получить MAC-адрес, когда сетевой адаптер отключен в .net?
Спасибо заранее,
Есть ли способ получить MAC-адрес, когда сетевой адаптер отключен в .net?
Спасибо заранее,
Невозможно получить 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();
Вы можете использовать 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;
}
Обратитесь к этой ссылке.
http://msdn.microsoft.com/en-us/library/system.net.networkinformation.physicaladdress.aspx
В этом примере показан физический адрес всего интерфейса, независимо от его рабочей стадии. НТН.