C#获取硬件信息
来源:互联网 发布:花与剑js为什么禁 编辑:程序博客网 时间:2024/04/28 01:26
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,没想到找到了这个,还是蛮有意思的!