2008-01-02

Network Adapter Configuration mit LINQ ermitteln

Die ManagementClass unter dem Namespace System.Management kann für die Ermittlung von System-Informationen verwendet werden. Im folgenden Beispiel werden ein paar Network Adapter Configuration-Informationen mithilfe der ManagementClass und LINQ ermittelt.

Für das folgende Beispiel müssen Sie die System.Management.dll Assembly als Referenz in Ihrem Projekt hinzufügen.

using System;
using System.Linq;
using System.Management;

namespace MacAddress
{
class Program
{
static void Main(string[] args)
{
ManagementClass mc
= new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc
= mc.GetInstances();

ManagementObject[] managementObjs
= new ManagementObject[moc.Count];
moc.CopyTo(managementObjs,
0);

var qry
= from mo in managementObjs
where ((bool)((ManagementObject)mo)["IPEnabled"]) == true
select
new
{
IPAddress
= ((ManagementObject)mo)["IPAddress"],
MacAddress
= ((ManagementObject)mo)["MacAddress"],
DHCPServer
= ((ManagementObject)mo)["DHCPServer"]
};

foreach (var netwAdaptConf in qry)
{
foreach (string ip in (string[])netwAdaptConf.IPAddress)
{
Console.WriteLine(
"IPAddress : " + ip);
}

Console.WriteLine(
"MacAddress: " + netwAdaptConf.MacAddress.ToString());
Console.WriteLine(netwAdaptConf.DHCPServer
!= null ? "DHCPServer: " + netwAdaptConf.DHCPServer.ToString() : "DHCPServer:");

Console.WriteLine(
"");
}

Console.ReadLine();
}
}
}

No comments: