代码改变世界

C#读取电脑硬件信息

2017-02-27 22:15  sunice  阅读(55)  评论(0编辑  收藏  举报

在班上看到同事在使用加密狗,自己试着做了一个类似加密狗读取电脑cpu和mac地址的程序。程序比较简单,但已经实现读取功能了。

 1  public class HardWareHelper
 2     {
 3         /// <summary>
 4         /// 获取本机所有的CPU序列号(不会返回null)
 5         /// </summary>
 6         /// <returns></returns>
 7         public static List<string> GetCpuID()
 8         {
 9             List<string> list = new List<string>();
10             try
11             {
12                 //获取CPU序列号代码
13                 ManagementClass mc = new ManagementClass("Win32_Processor");
14                 ManagementObjectCollection moc = mc.GetInstances();
15                 foreach (ManagementObject mo in moc)
16                 {
17                     list.Add(mo.Properties["ProcessorId"].Value.ToString());
18                 }
19             }
20             catch
21             {
22 
23             }
24             return list;
25         }
26         /// <summary>
27         /// 获取本机所有网卡ip地址和mac地址(ip|mac),不会返回null
28         /// </summary>
29         /// <returns></returns>
30         public static List<string> GetNetAddress()
31         {
32             List<string> list = new List<string>();
33             try
34             {
35                 //获取网络适配器
36                 ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
37                 ManagementObjectCollection moc = mc.GetInstances();
38                 string mac, ip;
39                 foreach (ManagementObject mo in moc)
40                 {
41                     if ((bool)mo["IPEnabled"] == true)
42                     {
43                         mac = mo["MacAddress"].ToString().Replace(":", "-");
44                         Array ar = (System.Array)(mo.Properties["IpAddress"].Value);
45                         ip = ar.GetValue(0).ToString();
46                         list.Add(ip + "|" + mac);
47                     }
48                 }
49             }
50             catch
51             {
52 
53             }
54             return list;
55         }
56     }

注意:

在使用ManagementClass 的时候,需要引入System.Management程序集和程序命名空间。