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

 

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; 
            } 
}

最新文章

  1. SQL 截取字符串
  2. vim 图
  3. BroadCast,BroadCastReceiver
  4. LwIP情景示例
  5. DevExpress LookUpEdit和ComboBoxEdit部分用法
  6. 双系统修改启动项顺序&&&修改开机启动等待时间
  7. 常见的HTTP状态码深入理解
  8. #pragma anon_unions, #pragma no_anon_unions
  9. Node.js 入门:Express + Mongoose 基础使用
  10. 201521123070 《JAVA程序设计》第14周学习总结
  11. c++cout执行顺序之一个不容易注意到的一点
  12. javascript 之 数组
  13. MyBatis进阶使用——动态SQL
  14. 2018-2019 2 20165203 《网络对抗技术》 Exp1 PC平台逆向破解
  15. 练习题|MySQL
  16. 良品铺子:“新零售”先锋的IT必经之路
  17. Pandas 基础(1) - 初识及安装 yupyter
  18. linux下的arm汇编程序
  19. 手机站CSS
  20. Final冲刺贡献分

热门文章

  1. css 用 display: inline-block; 代替 float
  2. Maven的配置地址
  3. Linux个人常用命令汇总
  4. Swing与javafx直接调用
  5. 配置LANMP环境(9)-- 安装Git与vsftp
  6. SecureCRT 设置字体跟颜色
  7. PHP 学习内容
  8. 2218 补丁vs错误
  9. zoj 2362 Beloved Sons【二分匹配】
  10. Android笔记之获取debug.keystore和release.keystore的MD5/SHA1值