We use WMI in System.Management Here is a .NET Framework 2.0 way of doing object queries in this case:
ManagementObjectSearcher query = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration");
ManagementObjectCollection queryCollection = query.Get();
string mac = "";
foreach (ManagementObject mo in queryCollection)
{
try
{
mac = mo["MacAddress"].ToString();
MessageBox.Show(mac);
}
catch { }
}