您的位置:首页 > 编程语言 > C#

C#获取硬件信息

2007-05-03 23:14 260 查看

使用WMI获取硬件信息

分类:默认栏目



using System.Management; Get CPUID,IP,MACaddress,DISK ID


using System.Management;
using System;

//WMI即视窗系统管理方法(Windows Management Instrumentation),存放各种信息的数据库
namespace 使用WMI获取IP
{
class WMIIP
{
[STAThread]
static void Main()
{
//Win32_NetworkAdapterConfiguration是WMI数据库中用来存放网络设备的信息表
ManagementObjectSearcher query=new
ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled='TRUE'");

//ManagementObjectCollection对象用来存放查询结果
ManagementObjectCollection queryCollection=query.Get();

foreach(ManagementObject mo in queryCollection)
{
Console.WriteLine("Network Card:{0}",mo["Description"]);
Console.WriteLine("MAC Address:{0}",mo["MACAddress"]);

//addresses, addresses和 defaultgateways 值都是可以包含多个值得数组.
//为了适应这种情况,为了适应这种情况,用户必须把结果分配到一个字符串数组,
//并再一次用foreach语句通过该字符串数组
string[] addresses=(string[])mo["IPAddress"];
string[] subnets=(string[])mo["IPSubnet"];
string[] defaultgateways=(string[])mo["DefaultIPGateway"];

//任何一个接口都可能有多个IP地址
foreach(string ipaddress in addresses)
{
Console.WriteLine("IP Address:{0}",ipaddress);
}

foreach(string subnet in subnets)
{
Console.WriteLine("Subnet Mask:{0}",subnet);
}

foreach(string defaultgateway in defaultgateways)
{
Console.WriteLine("Gateway:{0}",defaultgateway);
}
Console.WriteLine();
}

Console.WriteLine("*********************************");
ManagementObjectSearcher searcher = new
ManagementObjectSearcher("select * from win32_share");
foreach (ManagementObject share in searcher.Get())
{
Console.WriteLine("Share = " + share["Name"]);
}

}

// Get CPU ID
public static string GetCpuID()
{
try
{
ManagementClass mc = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = mc.GetInstances();

string strCpuID = null ;
foreach( ManagementObject mo in moc )
{
strCpuID = mo.Properties["ProcessorId"].Value.ToString();
break;
}
return strCpuID;
}
catch
{
return "";
}
}

// GET THE FIRST HARD DISK ID
public static string GetHardDiskID()
{
ManagementClass mc=new ManagementClass("Win32_DiskDrive");
string returnstr = "";
foreach(ManagementObject mb in mc.GetInstances())
{
returnstr = mb.Properties["PNPDeviceID"].Value.ToString();
if(returnstr != "") break;
}
return returnstr;
}//end

//GET MAC ADDRESS
public static string GetNetworkID()
{
try
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration");
string strNetworkID = null ;
foreach(ManagementObject mo in searcher.Get())
{
strNetworkID = mo["MACAddress"].ToString().Trim();
if(strNetworkID != "")
{
break;
}
}
return strNetworkID ;
}
catch
{
return "";
}
}//end

static void SwitchToStatic()
{
ManagementBaseObject inPar = null;
ManagementBaseObject outPar = null;
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
foreach( ManagementObject mo in moc )
{
if( ! (bool) mo[ "IPEnabled" ] )
continue;

// Change current IP Address to 192.168.0.253
inPar = mo.GetMethodParameters( "EnableStatic" );
inPar["IPAddress"] = new string[] { "192.168.0.253" };
inPar["SubnetMask"] = new string[] { "255.255.255.0" };
outPar = mo.InvokeMethod( "EnableStatic", inPar, null );
break;
}
}

static void SwitchToDHCP()
{
ManagementBaseObject inPar = null;
ManagementBaseObject outPar = null;
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
foreach( ManagementObject mo in moc )
{
if( ! (bool) mo["IPEnabled"] )
continue;

inPar = mo.GetMethodParameters("EnableDHCP");
outPar = mo.InvokeMethod( "EnableDHCP", inPar, null );
break;
}
}

static void ReportIP()
{
Console.WriteLine( "****** Current IP addresses:" );
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
foreach( ManagementObject mo in moc )
{
if( ! (bool) mo[ "IPEnabled" ] )
continue;

Console.WriteLine( "{0}n SVC: '{1}' MAC: [{2}]", (string) mo["Caption"],
(string) mo["ServiceName"], (string) mo["MACAddress"] );

string[] addresses = (string[]) mo[ "IPAddress" ];
string[] subnets = (string[]) mo[ "IPSubnet" ];

// display IP Addresses
Console.WriteLine( " Addresses :" );
foreach(string sad in addresses)
Console.WriteLine( "t'{0}'", sad );

// display SubNets mask
Console.WriteLine( " Subnets :" );
foreach(string sub in subnets )
Console.WriteLine( "t'{0}'", sub );
}
}

}
}

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=755165
2007.1.18 20:07 作者:liufanmao if(blogID!=null)document.writeln('引用0 | ');收藏 | 评论:0

C#获取硬件信息

分类:默认栏目

//此代码从网络收集整理

//经测试通过

//需引用System.Management

using System;

using System.Management;

namespace MyCustomClassLib

{

/// <summary>

/// 硬件信息类

/// </summary>

public class HardwareInfo

{ public HardwareInfo()

{ //

// TODO: 在此处添加构造函数逻辑

// }

#region 硬件属性

/// <summary>

/// 机器名

/// </summary>

public string HostName

{

get

{return System.Net.Dns.GetHostName();

}

}

/// <summary>

/// CPU编号

/// </summary>

public string CPUID

{

get{return GetCpuID();}

}

/// <summary>

///硬盘编号

/// </su



获取cpu序列号,硬盘ID,网卡MAC地址


添加引用System.Management

string cpuInfo = "";//cpu序列号
ManagementClass cimobject = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = cimobject.GetInstances();
foreach(ManagementObject mo in moc)
{
cpuInfo = mo.Properties["ProcessorId"].value.ToString();
Console.WriteLine(cpuInfo);
Console.ReadLine();
}

获取硬盘ID
String HDid;
ManagementClass cimobject = new ManagementClass("Win32_DiskDrive");
ManagementObjectCollection moc = cimobject.GetInstances();
foreach(ManagementObject mo in moc)
{
HDid = (string)mo.Properties["Model"].value;
MessageBox.Show(HDid );
}

获取网卡硬件地址
using System.Management;
...
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
foreach(ManagementObject mo in moc)
{
if((bool)mo["IPEnabled"] == true)
Console.WriteLine("MAC addresst{0}", mo["MacAddress"].ToString());
mo.Dispose();
}

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=527210



CPU的序列号

可以取CPU的序列号。
string cpuInfo = "";//cpu序列号
ManagementClass cimobject = new
ManagementClass("Win32_Processor");
ManagementObjectCollection moc = cimobject.GetInstances();
foreach(ManagementObject mo in moc)
{
cpuInfo = mo.Properties["ProcessorId"].Value.ToString();
Response.Write(cpuInfo);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: