1 // 注意:首先要在项目中添加引用 System.Management
  2
  3 using System;
  4 using System.Collections.Generic;
  5 using System.Linq;
  6 using System.Web;
  7 using System.Management;
  8
  9 public class Computer
 10 {
 11     public string CpuID; //CPU的ID
 12     public int CpuCount; //CPU的个数
 13     public string[] CpuMHZ;//CPU频率  单位:hz
 14     public string MacAddress;//计算机的MAC地址
 15     public string DiskID;//硬盘的ID
 16     public string DiskSize;//硬盘大小  单位:bytes
 17     public string IpAddress;//计算机的IP地址
 18     public string LoginUserName;//操作系统登录用户名
 19     public string ComputerName;//计算机名
 20     public string SystemType;//系统类型
 21     public string TotalPhysicalMemory; //总共的内存  单位:M
 22     public string BoardID;// 主板序列号
 23     public string BoardType;// 主板型号
 24     private static Computer _instance;
 25     public static Computer Instance()
 26     {
 27         if (_instance == null)
 28             _instance = new Computer();
 29         return _instance;
 30     }
 31     public Computer()
 32     {
 33         CpuID = GetCpuID();
 34         CpuCount = GetCpuCount();
 35         CpuMHZ = GetCpuMHZ();
 36         MacAddress = GetMacAddress();
 37         DiskID = GetDiskID();
 38         DiskSize = GetSizeOfDisk();
 39         IpAddress = GetIPAddress();
 40         LoginUserName = GetUserName();
 41         SystemType = GetSystemType();
 42         TotalPhysicalMemory = GetTotalPhysicalMemory();
 43         ComputerName = GetComputerName();
 44         BoardID = GetBoardID();
 45         BoardType = GetBoardType();
 46     }
 47     string GetCpuID()
 48     {
 49         try
 50         {
 51             //获取CPU序列号代码
 52             string cpuInfo = " ";//cpu序列号
 53             ManagementClass mc = new ManagementClass("Win32_Processor");
 54             ManagementObjectCollection moc = mc.GetInstances();
 55             foreach (ManagementObject mo in moc)
 56             {
 57                 cpuInfo = mo.Properties["ProcessorId"].Value.ToString();
 58             }
 59             moc = null;
 60             mc = null;
 61             return cpuInfo;
 62         }
 63         catch
 64         {
 65             return "unknow ";
 66         }
 67         finally
 68         {
 69         }
 70
 71     }
 72     public static int GetCpuCount()
 73     {
 74         try
 75         {
 76             using (ManagementClass mCpu = new ManagementClass("Win32_Processor"))
 77             {
 78                 ManagementObjectCollection cpus = mCpu.GetInstances();
 79                 return cpus.Count;
 80             }
 81         }
 82         catch
 83         {
 84         }
 85         return -1;
 86     }
 87     public static string[] GetCpuMHZ()
 88     {
 89         ManagementClass mc = new ManagementClass("Win32_Processor");
 90         ManagementObjectCollection cpus = mc.GetInstances();
 91
 92         string[] mHz = new string[cpus.Count];
 93         int c = 0;
 94         ManagementObjectSearcher mySearch = new ManagementObjectSearcher("select * from Win32_Processor");
 95         foreach (ManagementObject mo in mySearch.Get())
 96         {
 97             mHz[c] = mo.Properties["CurrentClockSpeed"].Value.ToString();
 98             c++;
 99         }
100         mc.Dispose();
101         mySearch.Dispose();
102         return mHz;
103     }
104     public static string GetSizeOfDisk()
105     {
106         ManagementClass mc = new ManagementClass("Win32_DiskDrive");
107         ManagementObjectCollection moj = mc.GetInstances();
108         foreach (ManagementObject m in moj)
109         {
110             return m.Properties["Size"].Value.ToString();
111         }
112         return "-1";
113     }
114     string GetMacAddress()
115     {
116         try
117         {
118             //获取网卡硬件地址
119             string mac = " ";
120             ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
121             ManagementObjectCollection moc = mc.GetInstances();
122             foreach (ManagementObject mo in moc)
123             {
124                 if ((bool)mo["IPEnabled"] == true)
125                 {
126                     mac = mo["MacAddress"].ToString();
127                     break;
128                 }
129             }
130             moc = null;
131             mc = null;
132             return mac;
133         }
134         catch
135         {
136             return "unknow ";
137         }
138         finally
139         {
140         }
141
142     }
143     string GetIPAddress()
144     {
145         try
146         {
147             //获取IP地址
148             string st = " ";
149             ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
150             ManagementObjectCollection moc = mc.GetInstances();
151             foreach (ManagementObject mo in moc)
152             {
153                 if ((bool)mo["IPEnabled"] == true)
154                 {
155                     //st=mo[ "IpAddress "].ToString();
156                     System.Array ar;
157                     ar = (System.Array)(mo.Properties["IpAddress"].Value);
158                     st = ar.GetValue(0).ToString();
159                     break;
160                 }
161             }
162             moc = null;
163             mc = null;
164             return st;
165         }
166         catch
167         {
168             return "unknow ";
169         }
170         finally
171         {
172         }
173
174     }
175     string GetDiskID()
176     {
177         try
178         {
179             //获取硬盘ID
180             String HDid = " ";
181             ManagementClass mc = new ManagementClass("Win32_DiskDrive");
182             ManagementObjectCollection moc = mc.GetInstances();
183             foreach (ManagementObject mo in moc)
184             {
185                 HDid = (string)mo.Properties["Model"].Value;
186             }
187             moc = null;
188             mc = null;
189             return HDid;
190         }
191         catch
192         {
193             return "unknow ";
194         }
195         finally
196         {
197         }
198
199     }
200     ///    <summary>
201     ///   操作系统的登录用户名
202     ///    </summary>
203     ///    <returns>  </returns>
204     string GetUserName()
205     {
206         try
207         {
208             string st = " ";
209             ManagementClass mc = new ManagementClass("Win32_ComputerSystem");
210             ManagementObjectCollection moc = mc.GetInstances();
211             foreach (ManagementObject mo in moc)
212             {
213
214                 st = mo["UserName"].ToString();
215
216             }
217             moc = null;
218             mc = null;
219             return st;
220         }
221         catch
222         {
223             return "unknow ";
224         }
225         finally
226         {
227         }
228
229     }
230     string GetSystemType()
231     {
232         try
233         {
234             string st = " ";
235             ManagementClass mc = new ManagementClass("Win32_ComputerSystem");
236             ManagementObjectCollection moc = mc.GetInstances();
237             foreach (ManagementObject mo in moc)
238             {
239
240                 st = mo["SystemType"].ToString();
241
242             }
243             moc = null;
244             mc = null;
245             return st;
246         }
247         catch
248         {
249             return "unknow ";
250         }
251         finally
252         {
253         }
254
255     }
256     string GetTotalPhysicalMemory()
257     {
258         try
259         {
260
261             string st = " ";
262             ManagementClass mc = new ManagementClass("Win32_ComputerSystem");
263             ManagementObjectCollection moc = mc.GetInstances();
264             foreach (ManagementObject mo in moc)
265             {
266
267                 st = mo["TotalPhysicalMemory"].ToString();
268
269             }
270             moc = null;
271             mc = null;
272             return st;
273         }
274         catch
275         {
276             return "unknow ";
277         }
278         finally
279         {
280         }
281     }
282     string GetComputerName()
283     {
284         try
285         {
286             return System.Environment.GetEnvironmentVariable("ComputerName");
287         }
288         catch
289         {
290             return "unknow ";
291         }
292         finally
293         {
294         }
295     }
296
297     string GetBoardID()
298     {
299         string strbNumber = string.Empty;
300         try
301         {
302             ManagementObjectSearcher mos = new ManagementObjectSearcher("select * from Win32_baseboard");
303             foreach (ManagementObject mo in mos.Get())
304             {
305                 strbNumber = mo["SerialNumber"].ToString().Trim('.');
306                 break;
307             }
308         }
309         catch (Exception ex)
310         {
311             strbNumber = "unknow";
312         }
313
314         return strbNumber;
315     }
316
317     /// <summary>
318     /// 主板型号
319     /// </summary>
320     /// <returns></returns>
321     string GetBoardType()
322     {
323         string st = "";
324         ManagementObjectSearcher mos = new ManagementObjectSearcher("Select * from Win32_BaseBoard");
325         foreach (ManagementObject mo in mos.Get())
326         {
327             st = mo["Product"].ToString();
328         }
329         return st;
330     }
331
332
333 }

转载于:https://www.cnblogs.com/zlsyl/p/5234812.html

获得服务器硬件信息(CPUID、硬盘号、主板序列号、IP地址等)相关推荐

  1. PC和服务器的IP地址信息DNS,PC和服务器的IP地址信息DNS

    PC和服务器的IP地址信息DNS 内容精选 换一换 网站的访问与云服务器的网络配置.端口通信.防火墙配置.安全组配置等多个环节相关联.任意一个环节出现问题,都会导致网站无法访问.本节操作介绍网站无法访 ...

  2. ip 子网数目 网络号 主机号 广播地址 可用IP地址范围

    考试中都会给定一个IP地址和对应的子网掩码,让你计算 1.子网数目 2.网络号 3.主机号 4.广播地址 5.可用IP地址范围 综合实例: 已知172.31.128.255/18,试计算: 1.子网数 ...

  3. 计算机网络中地址数怎么算,【计算机网络技术】根据IP地址子网掩码计算网络地址、直接广播地址、主机号以及可用IP地址的范围...

    IP 每一类地址都由两个固定长度的字段组成,其中一个字段是网络号 net-id,它标志主机(或路由器)所连接到的网络,而另一个字段则是主机号 host-id,它标志该主机(或路由器) 主机号在它前面的 ...

  4. 【计算机网络技术】根据IP地址子网掩码计算网络地址、直接广播地址、主机号以及可用IP地址的范围

    IP 每一类地址都由两个固定长度的字段组成,其中一个字段是网络号 net-id,它标志主机(或路由器)所连接到的网络,而另一个字段则是主机号 host-id,它标志该主机(或路由器) 主机号在它前面的 ...

  5. 网关与网络地址(网络号)以及IP地址、广播地址

    转载自:http://blog.sina.com.cn/s/blog_406127500101i8bp.html 学习网络很久了,这个问题还是搞不懂,主要还是不理解这个网关的作用,感觉没有它日子也照样 ...

  6. PL/SQL 如何查看当前连接信息以及SQL PLUS如何指定IP地址

    1.通过PL/SQL 想连接别的数据库可以通过在服务名前面加上IP和左斜线来实现: 2.有时我们的IP和左斜线不用输也能连别的数据库,是因为在一个文件里配置好了.这个文件在哪里? 在这个路径下的 NE ...

  7. 关于绑定IP地址与端口号的见解

    "端口",通俗地讲就是一个通信通道的"门",各种计算机服务和通信都是通过特定的端口与外部计算机进行通信,像常见的WWW.FTP.Telnet服务一样. 随着计算 ...

  8. 网络编程-IP地址、端口号、网络字节序

    IP地址.端口号.网络字节序 本文中部分名词可见: 协议.TCP/IP模型.数据包封装与分用 一.IP地址 1. 简单认识 IP协议有两个版本:IPv4和IPv6. (1)IP地址在IP协议中,用来标 ...

  9. IP地址、端口号、网络字节序

    本文中部分名词可见: 协议.TCP/IP模型.数据包封装与分用 一.IP地址 1. 简单认识 IP协议有两个版本:IPv4和IPv6. (1)IP地址在IP协议中,用来标识网络中不同主机的地址. (2 ...

  10. 【计算机网络】网络层 : IPv4 地址 ( IP 地址分类 | 特殊 IP 地址 | 私有 IP 地址 | A 类、B 类、C 类 IP 地址网络号主机号数量 )★

    文章目录 一.IP 地址 发展 二.分类 IP 地址 三.特殊 IP 地址 四.私有 IP 地址 五.分类 IP 地址 网络号 主机数 详情 一.IP 地址 发展 IP 地址 发展 : 第一阶段 : ...

最新文章

  1. docker 部署 tomcat 服务
  2. Spring event 使用完全指南
  3. BUUCTF-WEB:[强网杯 2019]随便注 1
  4. hdu 3401(单调队列优化dp)
  5. No identifier specified for entity没有为实体指定标识符
  6. 蓝桥杯基础模块7:PWM脉宽调制
  7. 第四十二节,configparser特定格式的ini配置文件模块
  8. python 爬虫论_Python网络爬虫(理论篇)
  9. python网络编程第三版网盘_Python网络编程(socketserver、TFTP云盘、HTTPServer服务器模型)...
  10. wireless中添加country code的方法(wireless-regdb crda)
  11. linux微软公式编辑器,linux下的公式编辑器
  12. 2021秋招总结(器件方向转行数字IC设计)
  13. Graphene-SGX 总结
  14. oracle将汉字转为全拼或返回拼音首字母sql
  15. 支付宝企业转账到个人账号(php源码,亲测)
  16. Photoshop创意设计手法14点(转)
  17. Linux下的motion detection(最简单的办公室监控系统)
  18. 当上技术领导以后才明白的事情
  19. leet160:相交链表
  20. 游戏数据分析用到的模型(二)留存率预估

热门文章

  1. PHP mysql数据迁移,【MySQL】迁移数据目录php-php教程
  2. Java学习总结:51(对象序列化)
  3. 守护进程中创建的对象php,在PHP中生成守护进程(Daemon Process)
  4. 右键新建里面没有word和excel_Windows10系统下如何将Sublime Text3添加到右键快捷菜单?...
  5. 【servlete】兴唐第三十二节课知识点汇总
  6. 设置PLSQ 连接oracle数据库
  7. 适配设备的简易新闻浏览器
  8. 7 OC 中class 类的结构
  9. Mac 安装Android Studio
  10. MacOS无法登录App Store修复