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:
Post a Comment