C#获取机器硬件信息

2018-07-20    来源:open-open

容器云强势上线!快速搭建集群,上万Linux镜像随意使用

    using System;  
    using System.Management;  
    namespace Soyee.Comm  
    {  
        /// <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  
                {  
                    //获取网卡硬件地址  
                    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  
                {  
                }  
            }  
      
      
        }  
    }


标签: 代码

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。

上一篇:繁体转换成简体

下一篇:C++STL之归并排序