2010-06-30 6 views
10

Esiste un modo per recuperare l'indirizzo MAC quando la scheda di rete è disabilitata in .net?Ottieni l'indirizzo MAC quando la scheda di rete è disabilitata?

Grazie in anticipo,

+1

potreste inserire il codice che si utilizza per quando l'adattatore è abilitato, e poi parlare che di chiamata (s) non funzionano quando l'adattatore è disattivato? –

risposta

7

Non è possibile ottenere l'indirizzo MAC di un adattatore disabilitato: questo perché l'indirizzo MAC richiede l'interrogazione del driver e il driver per un adattatore disattivato non è caricato (source).

È tuttavia possibile ottenere l'indirizzo MAC di un adattatore che non è attualmente collegato.

Qui il percorso WMI non va bene perché mostra l'indirizzo MAC come null per gli adattatori che non sono connessi. La buona notizia è che il percorso NetworkInterface.GetAllNetworkInterfaces() funziona bene:

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

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

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

è possibile utilizzare 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; 
    } 
+4

Questo non funziona con Windows 7 quando NIC è disabilitato. Qualche ragione per cui ??? –

+1

Inoltre, non funziona su Windows XP. Penso che questa risposta sia stata contrassegnata come la risposta troppo veloce. – bitbonk

+0

Non funziona se l'adattatore di rete è disabilitato. – tmighty

Problemi correlati