C#获取硬件信息
2008-07-08 23:25
302 查看
using System; using System.Net; using System.Runtime.InteropServices; using System.Management; //需要在解决方案中引用System.Management.DLL文件 namespace ConsoleApplication1 { /// <summary> /// HardInfoClass 的摘要说明。 /// </summary> public class HardInfoClass { [DllImport("kernel32.dll")] private static extern int GetVolumeInformation( string lpRootPathName, string lpVolumeNameBuffer, int nVolumeNameSize, ref int lpVolumeSerialNumber, int lpMaximumComponentLength, int lpFileSystemFlags, string lpFileSystemNameBuffer, int nFileSystemNameSize ); public HardInfoClass() { // // TODO: 在此处添加构造函数逻辑 // } //获取机器名 public string GetHostName() { return System.Net.Dns.GetHostName(); } //获取CPU编号 public 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 ""; } }//end method //获取第一块硬盘编号 public string GetHardDiskID() { try { ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia"); string strHardDiskID = null; foreach (ManagementObject mo in searcher.Get()) { strHardDiskID = mo["SerialNumber"].ToString().Trim(); break; } return strHardDiskID; } catch { return ""; } } //获取网卡MAC地址 public string GetNetCardMAC() { try { string stringMAC = ""; ManagementClass MC = new ManagementClass("Win32_NetworkAdapterConfiguration"); ManagementObjectCollection MOC = MC.GetInstances(); foreach (ManagementObject MO in MOC) { if ((bool)MO["IPEnabled"] == true) { stringMAC += MO["MACAddress"].ToString(); } } return stringMAC; } catch { return ""; } } //获取硬盘信息的代码 public string GetVolOf(string drvID) { try { const int MAX_FILENAME_LEN = 256; int retVal = 0; int a = 0; int b = 0; string str1 = null; string str2 = null; int i = GetVolumeInformation( drvID + @":/", str1, MAX_FILENAME_LEN, ref retVal, a, b, str2, MAX_FILENAME_LEN ); return retVal.ToString("x"); } catch { return ""; } } //获取当前网卡IP地址 public string GetNetCardIP() { try { string stringIP = ""; ManagementClass MC = new ManagementClass("Win32_NetworkAdapterConfiguration"); ManagementObjectCollection MOC = MC.GetInstances(); foreach (ManagementObject MO in MOC) { if ((bool)MO["IPEnabled"] == true) { string[] IPAddresses = (string[])MO["IPAddress"]; if (IPAddresses.Length > 0) stringIP = IPAddresses[0].ToString(); } } return stringIP; } catch { return ""; } } } }
今天以外的需要获得MAC,没想到找到了这个,还是蛮有意思的!
相关文章推荐
- C# 获取系统硬件信息
- C#获取硬件信息(二)
- c# WMI获取机器硬件信息(硬盘,cpu,内存等)
- ManagementClass类解析和C#如何获取硬件的相关信息
- C#获取当前主机硬件信息
- c# 获取硬件信息
- 一个用C#获取硬件信息的类
- C#获取计算机的硬件信息
- C#获取硬件信息
- C#获取硬件信息
- c# 获取机器硬件信息 (硬盘,cpu,内存等)
- C#获取当前主机硬件信息
- C#获取硬件信息(CPU序列号,网卡地址...)
- ManagementClass类解析和C#如何获取硬件的相关信息
- C#获取当前主机硬件信息
- C#获取当前主机硬件信息
- C#获取硬件信息的方法
- ManagementClass类解析和C#如何获取硬件的相关信息
- C#获取计算机硬件信息(CPU,网卡,硬盘,内存等)
- C#获取当前主机硬件信息