计算机信息类ComputerInfo

来源:互联网 发布:淘宝实惠零食店铺 编辑:程序博客网 时间:2024/05/11 08:56
 
using System;using System.Management;using System.Net;using System.Net.Sockets;using System.Text;using System.Diagnostics;using System.Text.RegularExpressions;namespace BaseFunction{    ///<summary>    ///计算机信息类    ///</summary>    public  class ComputerInfo    {        private  string CpuID;        private string MacAddress;        private string DiskID;        private string IpAddress;        private string LoginUserName;        private string ComputerName;        private string SystemType;        private string TotalPhysicalMemory; //单位:M         private static ComputerInfo _instance;        internal static ComputerInfo Instance()        {            if (_instance == null)                _instance = new ComputerInfo();            return _instance;        }        internal ComputerInfo()        {            CpuID = GetCpuID();            MacAddress = GetMacAddress();            DiskID = GetDiskID();            IpAddress = GetIPAddress();            LoginUserName = GetUserName();            SystemType = GetSystemType();            TotalPhysicalMemory = GetTotalPhysicalMemory();            ComputerName = GetComputerName();        }        /// <summary>        /// 浏览器客户端  获取网卡MAC地址MD5加密串  杨旭东        /// </summary>        /// <returns></returns>        public static string GetClientMac()        {            try            {              string clientIP =System.Web.HttpContext.Current.Request.UserHostAddress.Trim();              Int32 idest = API.inet_addr(clientIP);              Int64 macInfo = new Int64();              Int32 length = 6;              int res = API.SendARP(idest, 0, ref macInfo, ref length);              string mac_src = macInfo.ToString("X");              if (!string.IsNullOrEmpty(mac_src) && !"0".Equals(mac_src))              {                  while (mac_src.Length < 12)                  {                      mac_src = mac_src.Insert(0, "0");                  }                  string mac_dest = string.Empty;                  for (int i = 0; i < 11; i++)                  {                      if (i % 2 == 0)                      {                          if (i == 10)                              mac_dest = mac_dest.Insert(0, mac_src.Substring(i, 2));                          else                              mac_dest = "-" + mac_dest.Insert(0, mac_src.Substring(i, 2));                      }                  }                  return mac_dest;              }            }            catch            {                return "0";            }            return "0";        }        /// <summary>        /// 获取CPU序列号代码         /// </summary>        /// <returns></returns>      public  static  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            {            }        }        /// <summary>        /// 获取网卡硬件地址         /// </summary>        /// <returns></returns>      public static string GetMacAddress()        {            try            {                //获取网卡硬件地址             return Mac.GetMacAddress();                            }            catch            {                return "unknow";            }            finally            {            }        }        /// <summary>        /// 获取IP地址(IPv4)        /// </summary>        /// <returns></returns>      public static string GetIPAddress()        {            try            {                IPAddress[] arrIPAddresses = Dns.GetHostAddresses(Dns.GetHostName());                foreach (IPAddress ip in arrIPAddresses)                {                    if (ip.AddressFamily.Equals(AddressFamily.InterNetwork))//IPv4                    {                        return ip.ToString();                    }                }                return "unknow";            }            catch            {                return "unknow";            }            finally            {            }        }        /// <summary>        /// 获取硬盘ID         /// </summary>        /// <returns></returns>      public static string GetDiskID()        {            try            {             return Win32.GetHddInformation().ModuleNumber;            }            catch            {                return "unknow";            }            finally            {            }        }        ///<summary>        ///操作系统的登录用户名         ///</summary>        ///<returns></returns>      public static string GetUserName()        {            try            {                byte[] userName = new byte[30];                Int32[] length = new Int32[1];                length[0] = 30;//限定用户名长度                API.GetUserName(userName, length);                return System.Text.Encoding.ASCII.GetString(userName);            }            catch            {                return "unknow";            }            finally            {            }        }        ///<summary>        /// PC类型         ///</summary>        ///<returns></returns>      public static 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>      public static string GetTotalPhysicalMemory()        {            try            {                API.MEMORY_INFO memoryInfo = new API.MEMORY_INFO();                API.GlobalMemoryStatus(ref memoryInfo);                return memoryInfo.dwTotalPhys.ToString();            }            catch            {                return "unknow";            }            finally            {            }        }        ///<summary>        /// 获取计算机名称        ///</summary>        ///<returns></returns>      public static string GetComputerName()        {            try            {                byte[] computerName = new byte[30];                Int32[] length = new Int32[1];                length[0] = 30;//限定计算机名长度                API.GetComputerName(computerName,length);                return System.Text.Encoding.ASCII.GetString(computerName);            }            catch            {                return "unknow";            }            finally            {            }        }    }}

原创粉丝点击