C# 中获取CPU序列号/网卡mac地址等

简介:

这是我网上找的代码,但我自己对它进行了一些优化.

1.cpu序列号2.mac序列号3.硬盘id
在给软件加序列号时这三个应该是最有用的,可以实现序列号和机器绑定,对保护软件很有好处.哈哈.

不过现在好像要saas了,软件盗版就要消失了.

using System; 
using System.Management; 

    /// Computer Information 
    public class Computer 
    { 
        public string CpuID; //1.cpu序列号
        public string MacAddress; //2.mac序列号
        public string DiskID; //3.硬盘id
        public string IpAddress; //4.ip地址
        public string LoginUserName; //5.登录用户名
        public string ComputerName; //6.计算机名
        public string SystemType; //7.系统类型
        public string TotalPhysicalMemory; //8.内存量 单位:M 


       public  Computer() 
        { 
            CpuID = GetCpuID(); 
            MacAddress = GetMacAddress(); 
            DiskID = GetDiskID(); 
            IpAddress = GetIPAddress(); 
            LoginUserName = GetUserName(); 
            SystemType = GetSystemType(); 
            TotalPhysicalMemory = GetTotalPhysicalMemory(); 
            ComputerName = GetComputerName(); 
        }

     //1.获取CPU序列号代码 

        string GetCpuID() 
        { 
            try 
            { 
                 string cpuInfo = "";//cpu序列号 
                ManagementClass mc = new ManagementClass("Win32_Processor"); 
                ManagementObjectCollection moc = mc.GetInstances(); 
                foreach (ManagementObject mo in moc) 
                { 
                    cpuInfo = mo.Properties["ProcessorId"].Value.ToString(); 
                } 
                moc = null; 
                mc = null; 
                return cpuInfo; 
            } 
            catch 
            { 
                return "unknow"; 
            } 
            finally 
            { 
            } 

        }

 

   //2.获取网卡硬件地址 

        string GetMacAddress() 
        { 
            try 
            { 
                 string mac = ""; 
                ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration"); 
                ManagementObjectCollection moc = mc.GetInstances(); 
                foreach (ManagementObject mo in moc) 
                { 
                    if ((bool)mo["IPEnabled"] == true) 
                    { 
                        mac = mo["MacAddress"].ToString(); 
                        break; 
                    } 
                } 
                moc = null; 
                mc = null; 
                return mac; 
            } 
            catch 
            { 
                return "unknow"; 
            } 
            finally 
            { 
            } 

        }

 

    //3.获取硬盘ID 
        string GetDiskID() 
        { 
            try 
            { 
                 String HDid = ""; 
                ManagementClass mc = new ManagementClass("Win32_DiskDrive"); 
                ManagementObjectCollection moc = mc.GetInstances(); 
                foreach (ManagementObject mo in moc) 
                { 
                    HDid = (string)mo.Properties["Model"].Value; 
                } 
                moc = null; 
                mc = null; 
                return HDid; 
            } 
            catch 
            { 
                return "unknow"; 
            } 
            finally 
            { 
            } 

        } 

 

      //4.获取IP地址 

        string GetIPAddress() 
        { 
            try 
            { 
                string st = ""; 
                ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration"); 
                ManagementObjectCollection moc = mc.GetInstances(); 
                foreach (ManagementObject mo in moc) 
                { 
                    if ((bool)mo["IPEnabled"] == true) 
                    { 
                        //st=mo["IpAddress"].ToString(); 
                        System.Array ar; 
                        ar = (System.Array)(mo.Properties["IpAddress"].Value); 
                        st = ar.GetValue(0).ToString(); 
                        break; 
                    } 
                } 
                moc = null; 
                mc = null; 
                return st; 
            } 
            catch 
            { 
                return "unknow"; 
            } 
            finally 
            { 
            } 

        } 


    
        /// 5.操作系统的登录用户名 
         string GetUserName() 
        { 
            try 
            { 
                string un= ""; 

               st = Environment.UserName;
                             return un; 
            } 
            catch 
            { 
                return "unknow"; 
            } 
            finally 
            { 
            } 

        } 



          //6.获取计算机名
          string GetComputerName() 
        { 
            try 
            { 
                return System.Environment.MachineName;

            } 
            catch 
            { 
                return "unknow"; 
            } 
            finally 
            { 
            } 
        } 

   ///7 PC类型 
        string GetSystemType() 
        { 
            try 
            { 
                string st = ""; 
                ManagementClass mc = new ManagementClass("Win32_ComputerSystem"); 
                ManagementObjectCollection moc = mc.GetInstances(); 
                foreach (ManagementObject mo in moc) 
                { 

                    st = mo["SystemType"].ToString(); 

                } 
                moc = null; 
                mc = null; 
                return st; 
            } 
            catch 
            { 
                return "unknow"; 
            } 
            finally 
            { 
            } 
        } 


                   catch 
            { 
                return "unknow"; 
            } 
            finally 
            { 
            } 
        } 
    /// 8.物理内存 

        string GetTotalPhysicalMemory() 
        { 
            try 
            { 

                string st = ""; 
                ManagementClass mc = new ManagementClass("Win32_ComputerSystem"); 
                ManagementObjectCollection moc = mc.GetInstances(); 
                foreach (ManagementObject mo in moc) 
                { 

                    st = mo["TotalPhysicalMemory"].ToString(); 

                } 
                moc = null; 
                mc = null; 
                return st; 
            } 


    } 










本文转自 参天树 51CTO博客,原文链接:http://blog.51cto.com/119244/48540,如需转载请自行联系原作者
目录
相关文章
|
1月前
|
C# 开发工具 Windows
C# 获取Windows系统信息以及CPU、内存和磁盘使用情况
C# 获取Windows系统信息以及CPU、内存和磁盘使用情况
41 0
用C#操作类读写WinCE平台Mac地址
前段时间在测试我们触摸屏联网性能的时候,由于屏的Mac地址通过注册表设置,而PB定制WinCE内核的时候就有一个默认值,所以一批下来Mac地址都一样,两台以上的机器一联网准出问题,通过注册表软件去修改Mac地址太麻烦了,所以做了一个小的Mac地址软件。
595 0
|
缓存 测试技术 C#
.NET高性能编程之C#玩转CPU高速缓存(附示例)
高并发、低延迟之C#玩转CPU高速缓存(附示例)
2687 0
|
C# 数据安全/隐私保护
C#/VB.NET 获取电脑属性(硬盘ID、硬盘容量、Cpu序列号、MAC地址、系统类型)
原文:C#/VB.NET 获取电脑属性(硬盘ID、硬盘容量、Cpu序列号、MAC地址、系统类型) 在开发过程中,经常需要获取电脑的一些属性,如获取硬盘ID/CPU序列号/MAC地址作为来加密字符串。 1、硬盘 在我查看网上一些文档时,发现很多人对硬盘序列号很模糊~ 什么叫硬盘序列号?指的是作为一个硬盘的标识;但是有时候发现,同事的电脑硬盘序列号有重复的。
1536 0
|
测试技术 C#
c# 检测cpu使用率[测试通过]
创建一个控制台应用程序,代码如下   代码 using System;using System.Collections.Generic;using System.Linq;using System.
964 0
|
Windows
C#--WinForm获取本机网卡的型号,IP地址,子网掩码和网关
//方法一:利用注册表 using System; using Microsoft.Win32; class CardGrab {     public static void Main()     {         RegistryKey start = Registry.
869 0
|
6月前
|
开发框架 前端开发 .NET
C#编程与Web开发
【4月更文挑战第21天】本文探讨了C#在Web开发中的应用,包括使用ASP.NET框架、MVC模式、Web API和Entity Framework。C#作为.NET框架的主要语言,结合这些工具,能创建动态、高效的Web应用。实际案例涉及企业级应用、电子商务和社交媒体平台。尽管面临竞争和挑战,但C#在Web开发领域的前景将持续拓展。
192 3
|
6月前
|
SQL 开发框架 安全
C#编程与多线程处理
【4月更文挑战第21天】探索C#多线程处理,提升程序性能与响应性。了解C#中的Thread、Task类及Async/Await关键字,掌握线程同步与安全,实践并发计算、网络服务及UI优化。跟随未来发展趋势,利用C#打造高效应用。
198 3
|
13天前
|
C# 开发者
C# 一分钟浅谈:Code Contracts 与契约编程
【10月更文挑战第26天】本文介绍了 C# 中的 Code Contracts,这是一个强大的工具,用于通过契约编程增强代码的健壮性和可维护性。文章从基本概念入手,详细讲解了前置条件、后置条件和对象不变量的使用方法,并通过具体代码示例进行了说明。同时,文章还探讨了常见的问题和易错点,如忘记启用静态检查、过度依赖契约和性能影响,并提供了相应的解决建议。希望读者能通过本文更好地理解和应用 Code Contracts。
28 3
|
1月前
|
安全 C# 数据安全/隐私保护
实现C#编程文件夹加锁保护
【10月更文挑战第16天】本文介绍了两种用 C# 实现文件夹保护的方法:一是通过设置文件系统权限,阻止普通用户访问;二是使用加密技术,对文件夹中的文件进行加密,防止未授权访问。提供了示例代码和使用方法,适用于不同安全需求的场景。
101 0