using System; using System.Collections.Generic; using System.Management; using System.Net.NetworkInformation; namespace Y.Utils.ComputerUtils { public static class ComputerInfoTool { #region 获取CpuId public static string GetCpuId() { ManagementClass mc = null; ManagementObjectCollection moc = null; string ProcessorId = ""; try { mc = new ManagementClass("Win32_Processor"); moc = mc.GetInstances(); foreach (ManagementObject mo in moc) { ProcessorId = mo.Properties["ProcessorId"].Value.ToString(); } return ProcessorId; } catch { return "unknow"; } finally { if (moc != null) moc.Dispose(); if (mc != null) mc.Dispose(); } } #endregion #region 获取CPU信息 public static string GetCpuInfo() { try { string result = ""; ManagementObjectSearcher searcher = new ManagementObjectSearcher("select * from Win32_Processor"); foreach (ManagementObject item in searcher.Get()) { result = item["Name"].ToString(); } return result; } catch { return "unknown"; } } #endregion #region 获取网卡信息 /// /// 获取网卡信息 /// Item1:描述,Item2:物理地址(Mac),Item3:Ip地址,Item4:网关地址 /// /// public static List> GetNetworkCardInfo() { try { List> result = new List>(); NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces(); foreach (var item in adapters) { if (item.NetworkInterfaceType == NetworkInterfaceType.Ethernet || item.NetworkInterfaceType == NetworkInterfaceType.Wireless80211) { string _desc = item.Description; string _mac = item.GetPhysicalAddress().ToString(); string _ip = item.GetIPProperties().UnicastAddresses.Count >= 2 ? item.GetIPProperties().UnicastAddresses[1].Address.ToString() : null; string _gateway = item.GetIPProperties().GatewayAddresses.Count >= 1 ? item.GetIPProperties().GatewayAddresses[0].Address.ToString() : null; result.Add(new Tuple(_desc, _mac, _ip, _gateway)); } } return result; } catch (NetworkInformationException e) { return null; } } #endregion } }