2010-06-30 5 views
10

Est-il possible de récupérer l'adresse MAC lorsque l'adaptateur réseau est désactivé dans .net?Obtenir l'adresse MAC lorsque la carte réseau est désactivée?

Merci à l'avance,

+1

pourrait vous envoyer le code que vous utilisez lorsque l'adaptateur est activé, puis mentionner quel appel (s) ne fonctionnent pas lorsque l'adaptateur est désactivé? –

Répondre

7

Il n'est pas possible d'obtenir l'adresse MAC d'une carte désactivée: l'obtention de l'adresse MAC nécessite l'interrogation du pilote et le chargement d'une carte désactivée n'est pas chargé (source).

Vous pouvez cependant obtenir l'adresse MAC d'un adaptateur qui n'est pas actuellement connecté.

La route WMI n'est pas bonne ici, car elle indique l'adresse MAC comme nulle pour les cartes qui ne sont pas connectées. Les bonnes nouvelles sont que la route NetworkInterface.GetAllNetworkInterfaces() fonctionne très bien:

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

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

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

Vous pouvez utiliser 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

Cela ne fonctionne pas avec Windows 7 lorsque la carte réseau est désactivée. Une raison pour laquelle ??? –

+1

Cela ne fonctionne pas non plus sur Windows XP. Je pense que cette réponse a été marquée comme la réponse trop vite. – bitbonk

+0

Ne fonctionne pas si la carte réseau est désactivée. – tmighty

Questions connexes