2010-08-30 16 views
6

Estoy construyendo una aplicación C# y quiero buscar la identificación MAC del sistema. He encontrado muchos fragmentos de código, pero dan respuestas incorrectas o arrojan excepciones. No estoy seguro de qué fragmento de código da la respuesta correcta. ¿Alguien puede proporcionarme el fragmento de código exacto que obtiene la identificación MAC?Cómo obtener la identificación MAC de un sistema usando C#

Respuesta

10

Esto te ayudará.

public string FetchMacId() 
{ 
    string macAddresses = ""; 

    foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces()) 
    { 
     if (nic.OperationalStatus == OperationalStatus.Up) 
     { 
      macAddresses += nic.GetPhysicalAddress().ToString(); 
      break; 
     } 
    } 
    return macAddresses; 
} 
+0

este es genial. Funciona bien para mí. Gracias Pankaj –

+1

¿Por qué la concatenación de cadenas y el 'break'? ¿Por qué no puedes escribir 'return nic.GetPhysicalAddress(). ToString()' dentro del ciclo y deshacerse de la variable? – Timwi

0

System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces();

e iterar a través de cada interfaz, obtener la dirección MAC de cada uno.

Otra forma sería la de utilizar el objeto de gestión:

ManagementScope theScope = new ManagementScope("\\\\computerName\\root\\cimv2"); 
StringBuilder theQueryBuilder = new StringBuilder(); 
theQueryBuilder.Append("SELECT MACAddress FROM Win32_NetworkAdapter"); 
ObjectQuery theQuery = new ObjectQuery(theQueryBuilder.ToString()); 
ManagementObjectSearcher theSearcher = new ManagementObjectSearcher(theScope, theQuery); 
ManagementObjectCollection theCollectionOfResults = theSearcher.Get(); 

foreach (ManagementObject theCurrentObject in theCollectionOfResults) 
{ 
    string macAdd = "MAC Address: " + theCurrentObject["MACAddress"].ToString(); 
    MessageBox.Show(macAdd); 
} 
Cuestiones relacionadas