在日常工作中,我们通过获取PC配置信息来检查硬件的兼容性、性能优化、故障诊断、安全运维、优化用户体验等,通过合理利用硬件信息,开发者可以显著提升软件稳定性、安全性和用户体验。获取操作系统名称
获取操作系统类型
判断系统是32位或是64位
获取计算机名称
获取硬盘序号
获取CPC ID
获取物理内存信息
获取IPv4地址
测试IP是否畅通
1、获取操作系统名称
public string GetSystemName(){ try { string strSystemName = string.Empty; ManagementObjectSearcher mos = new ManagementObjectSearcher("root\\CIMV2", "SELECT PartComponent FROM Win32_SystemOperatingSystem"); foreach (ManagementObject mo in mos.Get()) { strSystemName = mo["PartComponent"].ToString(); } mos = new ManagementObjectSearcher("root\\CIMV2", "SELECT Caption FROM Win32_OperatingSystem"); foreach (ManagementObject mo in mos.Get()) { strSystemName = mo["Caption"].ToString(); } return strSystemName; } catch { return "unknown"; }}
2、获取操作系统类型
public string GetSystemType(){ try { string strSystemType = string.Empty; ManagementClass mc = new ManagementClass("Win32_ComputerSystem"); ManagementObjectCollection moc = mc.GetInstances(); foreach (ManagementObject mo in moc) { strSystemType = mo["SystemType"].ToString(); } moc = null; mc = null; return strSystemType; } catch { return "unknown"; }}
3、判断系统是32位或是64位
public string CheckPCSystem(){ string RetStr = ""; if (IntPtr.Size == 4) { RetStr = "32"; } else if (IntPtr.Size == 8) { RetStr = "64"; } return RetStr;}
4、获取计算机名称
public string GetComputerName(){ try { string strPCName = string.Empty; ManagementClass mc = new ManagementClass("Win32_ComputerSystem"); ManagementObjectCollection moc = mc.GetInstances(); foreach (ManagementObject mo in moc) { strPCName = mo["Name"].ToString(); } moc = null; mc = null; return strPCName; } catch { return "unknown"; }}
5、获取硬盘序号
public string GetDiskID(){ try { string strDiskID = string.Empty; ManagementClass mc = new ManagementClass("Win32_DiskDrive"); ManagementObjectCollection moc = mc.GetInstances(); foreach (ManagementObject mo in moc) { strDiskID = mo.Properties["Model"].Value.ToString(); } moc = null; mc = null; return strDiskID; } catch { return "unknown"; }}
6、获取CpuID
public string GetCpuID(){ try { string strCpuID = string.Empty; ManagementClass mc = new ManagementClass("Win32_Processor"); ManagementObjectCollection moc = mc.GetInstances(); foreach (ManagementObject mo in moc) { strCpuID = mo.Properties["ProcessorId"].Value.ToString(); } moc = null; mc = null; return strCpuID; } catch { return "unknown"; }}
7、获取物理内存信息
public string GetTotalPhysicalMemory(){ try { string strTotalPhysicalMemory = string.Empty; ManagementClass mc = new ManagementClass("Win32_ComputerSystem"); ManagementObjectCollection moc = mc.GetInstances(); foreach (ManagementObject mo in moc) { strTotalPhysicalMemory = mo["TotalPhysicalMemory"].ToString(); } moc = null; mc = null; return strTotalPhysicalMemory; } catch { return "unknown"; }}
8、获取IPv4地址
public string GetClientLocalIPv4Address(){ try { string HostName = Dns.GetHostName(); IPHostEntry IpEntry = Dns.GetHostEntry(HostName); for (int i = 0; i < IpEntry.AddressList.Length; i++) { if (IpEntry.AddressList[i].AddressFamily == AddressFamily.InterNetwork) { string ipv4 = IpEntry.AddressList[i].ToString(); Regex r = new Regex("[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}"); Match mth = r.Match(ipv4); if (mth.Success && ipv4 != "127.0.0.1") { return IpEntry.AddressList[i].ToString(); } } } return ""; } catch (Exception) { return ""; }}
9、测试IP是否畅通
public bool PingSeverIPState(string ServerIp){ try { System.Net.NetworkInformation.Ping p = new System.Net.NetworkInformation.Ping(); System.Net.NetworkInformation.PingOptions options = new System.Net.NetworkInformation.PingOptions(); options.DontFragment = true; string data = "Test Data!"; byte[] buffer = Encoding.ASCII.GetBytes(data); int timeout = 2000; System.Net.NetworkInformation.PingReply reply = p.Send(ServerIp, timeout, buffer, options); if (reply == null || reply.Status == System.Net.NetworkInformation.IPStatus.Success) return true;
return false; } catch (System.Net.NetworkInformation.PingException) { return false; }}
阅读原文:原文链接
该文章在 2025/8/4 18:01:08 编辑过