计算机信息类ComputerInfo
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 { } } } }
http://www.adocode.com
标签:
计算机信息
, ComputerInfo类
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架