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,没想到找到了这个,还是蛮有意思的!
原创粉丝点击