2010-01-07 37 views

Respuesta

12

no estoy seguro de lo que entendemos por máquina cliente, porque sólo se puede obtener la dirección MAC de una tarjeta de red de la máquina de su aplicación se ejecuta bajo.

Para este propósito puede utilizar ManagementClass:

C#:

using (var mc = new ManagementClass("Win32_NetworkAdapterConfiguration")) 
{ 
    foreach(ManagementObject mo in mc.GetInstances()) 
    { 
     Console.WriteLine(mo["MacAddress"].ToString()); 
    } 
} 

VB.NET:

Using mc As New ManagementClass("Win32_NetworkAdapterConfiguration") 
    For Each mo As ManagementObject In mc.GetInstances() 
     Console.WriteLine(mo("MacAddress").ToString()) 
    Next 
End Using 
3

Esto debería funcionar en VB - estoy seguro de C# es cerca de esta
Importe el siguiente espacio de nombre.

Imports System.Management 

Declarar siguiente variables de objeto.

Dim objMOS As ManagementObjectSearcher 

Dim objMOC As Management.ManagementObjectCollection 

Dim objMO As Management.ManagementObject 

Realice la consulta.

objMOS = New ManagementObjectSearcher("Select * From Win32_NetworkAdapter") 

objMOC = objMOS.Get 

Get MAC address from the query result. 

For Each objMO In objMOC 

MessageBox.Show(objMO("MACAddress")) 

Next 

Eliminar variables de objeto.

objMOS.Dispose() 

objMOS = Nothing 

objMO.Dispose() 

objMO = Nothing 
+1

'Obj Obj objeto oscuro como objeto' aaaaargh, la notación húngara hace llorar a bebé jesús –

+0

código antiguo - no creo que arreglarlo valió la pena el tiempo – braindice

4

la respuesta deseada es

ManagementClass objMC = new ManagementClass("Win32_NetworkAdapterConfiguration"); 
    ManagementObjectCollection objMOC = objMC.GetInstances(); 

    foreach (ManagementObject objMO in objMOC) 
    { 
     if (!(bool)objMO["ipEnabled"]) 
      continue; 

     Console.WriteLine((string)objMO["MACAddress"]); 
    } 
+0

Azhar, es mostrar la máquina del cliente o la máquina del servidor? –

Cuestiones relacionadas