C#读取电脑硬件信息

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#读取电脑硬件信息相关的知识,希望对你有一定的参考价值。

在班上看到同事在使用加密狗,觉得自己也可以实现一个类似加密狗读取电脑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程序集和程序命名空间。

以上是关于C#读取电脑硬件信息的主要内容,如果未能解决你的问题,请参考以下文章

C#程序员经常用到的10个实用代码片段

C# 通过tcp协议向硬件发送命令,networkstream read 读取返回信息时卡死。

记录C#常用的代码片段

[Winform]CefSharp ——js调用c#方法

C#怎么获取已知USB设备驱动信息

电脑管家(像qq,360管家)是怎么获取到系统中安装的软件列表和补丁列表(漏洞,已安装,未安装)用C#如何实现