c#中获取cpu序列号、网卡mac地址、ip地址、硬盘序列号、登录用户名、pc类型、计算机名称、物理内存

来源:互联网 发布:家庭网络存储服务器 编辑:程序博客网 时间:2024/05/16 08:28
using System;using System.Management;namespace SHJ{    /// <summary>    /// Computer Information    /// </summary>    public class Computer    {        public string CpuID;        public string MacAddress;        public string DiskID;        public string IpAddress;        public string LoginUserName;        public string ComputerName;        public string SystemType;        public string TotalPhysicalMemory; //单位:M        private static Computer _instance;        public static Computer Instance()        {            if (_instance == null)                _instance = new Computer();            return _instance;        }        protected Computer()        {            CpuID = GetCpuID();            MacAddress = GetMacAddress();            DiskID = GetDiskID();            IpAddress = GetIPAddress();            LoginUserName = GetUserName();            SystemType = GetSystemType();            TotalPhysicalMemory = GetTotalPhysicalMemory();            ComputerName = GetComputerName();        }        string GetCpuID()        {            try            {                //获取CPU序列号代码                string cpuInfo = "";//cpu序列号                ManagementClass mc = new ManagementClass("Win32_Processor");                ManagementObjectCollection moc = mc.GetInstances();                foreach (ManagementObject mo in moc)                {                    cpuInfo = mo.Properties["ProcessorId"].Value.ToString();                }                moc = null;                mc = null;                return cpuInfo;            }            catch            {                return "unknow";            }            finally            {            }        }        string GetMacAddress()        {            try            {                //获取网卡Mac地址                string mac = "";                ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");                ManagementObjectCollection moc = mc.GetInstances();                foreach (ManagementObject mo in moc)                {                    if ((bool)mo["IPEnabled"] == true)                    {                        mac = mo["MacAddress"].ToString();                        break;                    }                }                moc = null;                mc = null;                return mac;            }            catch            {                return "unknow";            }            finally            {            }        }        string GetIPAddress()        {            try            {                //获取IP地址                string st = "";                ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");                ManagementObjectCollection moc = mc.GetInstances();                foreach (ManagementObject mo in moc)                {                    if ((bool)mo["IPEnabled"] == true)                    {                        //st=mo["IpAddress"].ToString();                        System.Array ar;                        ar = (System.Array)(mo.Properties["IpAddress"].Value);                        st = ar.GetValue(0).ToString();                        break;                    }                }                moc = null;                mc = null;                return st;            }            catch            {                return "unknow";            }            finally            {            }        }        string GetDiskID()        {            try            {                //获取硬盘ID                String HDid = "";                ManagementClass mc = new ManagementClass("Win32_DiskDrive");                ManagementObjectCollection moc = mc.GetInstances();                foreach (ManagementObject mo in moc)                {                    HDid = (string)mo.Properties["Model"].Value;                }                moc = null;                mc = null;                return HDid;            }            catch            {                return "unknow";            }            finally            {            }        }        /// <summary>        /// 操作系统的登录用户名        /// </summary>        /// <returns></returns>        string GetUserName()        {            try            {                string st = "";                ManagementClass mc = new ManagementClass("Win32_ComputerSystem");                ManagementObjectCollection moc = mc.GetInstances();                foreach (ManagementObject mo in moc)                {                    st = mo["UserName"].ToString();                }                moc = null;                mc = null;                return st;            }            catch            {                return "unknow";            }            finally            {            }        }        /// <summary>        /// PC类型        /// </summary>        /// <returns></returns>        string GetSystemType()        {            try            {                string st = "";                ManagementClass mc = new ManagementClass("Win32_ComputerSystem");                ManagementObjectCollection moc = mc.GetInstances();                foreach (ManagementObject mo in moc)                {                    st = mo["SystemType"].ToString();                }                moc = null;                mc = null;                return st;            }            catch            {                return "unknow";            }            finally            {            }        }        /// <summary>        /// 物理内存        /// </summary>        /// <returns></returns>        string GetTotalPhysicalMemory()        {            try            {                string st = "";                ManagementClass mc = new ManagementClass("Win32_ComputerSystem");                ManagementObjectCollection moc = mc.GetInstances();                foreach (ManagementObject mo in moc)                {                    st = mo["TotalPhysicalMemory"].ToString();                }                moc = null;                mc = null;                return st;            }            catch            {                return "unknow";            }            finally            {            }        }        /// <summary>        /// 计算机名称        /// </summary>        /// <returns></returns>        string GetComputerName()        {            try            {                return System.Environment.GetEnvironmentVariable("ComputerName");            }            catch            {                return "unknow";            }            finally            {            }        }    }}