博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 中获取CPU序列号/网卡mac地址等
阅读量:6478 次
发布时间:2019-06-23

本文共 3355 字,大约阅读时间需要 11 分钟。

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

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,如需转载请自行联系原作者
你可能感兴趣的文章
PCA误差
查看>>
烦人的数据不一致问题到底怎么解决?——通过“共识”达成数据一致性
查看>>
WPFの获取任意元素的位置
查看>>
WPF的TextBox产生内存泄露的情况
查看>>
RAMPS1.4 3d打印控制板接线与测试1
查看>>
PS 多次剪裁同一图片
查看>>
MusicXML 3.0 (2) - 调号
查看>>
收集的QCon 北京(Beijing) 2010 PPT 及总结
查看>>
Qt 让QLabel自适应text的大小,并且自动换行(转)
查看>>
PostgreSQL学习手册(十六) SQL语言函数
查看>>
网络编程——第一篇 基础之进程线程
查看>>
9.png 技巧
查看>>
hdu 4715(打表)
查看>>
java J2EE学习入门
查看>>
Linux系统信息查看命令大全
查看>>
为什么项目的jar包会和tomcat的jar包冲突?
查看>>
这些.NET开源项目你知道吗?.NET平台开源文档与报表处理组件集合(三)
查看>>
linux ps top 命令 VSZ,RSS,TTY,STAT, VIRT,RES,SHR,DATA的含义【转】
查看>>
程序员接私活记(转)
查看>>
eclipse如何修改dynamic web module version
查看>>