How to get MAC address of client machine in c# and vb.net
+2
A:
This should work in vb - i am sure c# is close to this
Import the following namespace.
Imports System.Management
Declare following object variables.
Dim objMOS As ManagementObjectSearcher
Dim objMOC As Management.ManagementObjectCollection
Dim objMO As Management.ManagementObject
Execute the query.
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
Dispose object variables.
objMOS.Dispose()
objMOS = Nothing
objMO.Dispose()
objMO = Nothing
codemypantsoff
2010-01-07 08:02:58
`Dim objObject As Object` aaaaargh, hungarian notation makes baby jesus cry
Paul Creasey
2010-01-07 08:09:51
old code - didnt think fixing it was worth the time
codemypantsoff
2010-01-07 08:14:18
+8
A:
I am not sure what you mean by client machine, because you can only get the MAC address of a NIC of the machine your application executes under.
For this you could use 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
Darin Dimitrov
2010-01-07 08:03:42
+1
A:
the desired answer is
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"]);
}
Azhar
2010-01-08 11:22:41