获取CPUID生成机器码,但是重复了

问题描述

stringcpuInfo="";using(ManagementClasscimobject=newManagementClass("Win32_Processor")){ManagementObjectCollectionmoc=cimobject.GetInstances();foreach(ManagementObjectmoinmoc){cpuInfo=mo.Properties["ProcessorId"].Value.ToString();mo.Dispose();}}returncpuInfo.ToString();

都说这样获取,但是好多机子获取到的都是一样的,什么情况,都是这个BFEBFBFF000306A9谁有更好的方法

解决方案

解决方案二:
Guid呗
解决方案三:
///<summary>///获取CPU系列号///</summary>///<returns></returns>privatestringgetCpu(){stringstrCpu=null;ManagementClassmyCpu=newManagementClass("win32_Processor");ManagementObjectCollectionmyCpuConnection=myCpu.GetInstances();foreach(ManagementObjectmyObjectinmyCpuConnection){strCpu=myObject.Properties["Processorid"].Value.ToString();break;}returnstrCpu;}///<summary>///获取硬盘系列号///</summary>///<returns></returns>privatestringGetDiskVolumeSerialNumber(){ManagementClassmc=newManagementClass("Win32_NetworkAdapterConfiguration");ManagementObjectdisk=newManagementObject("win32_logicaldisk.deviceid="c:"");disk.Get();returndisk.GetPropertyValue("VolumeSerialNumber").ToString();}

解决方案四:
///<summary>///获取CPU序列号///</summary>///<returns></returns>privatestaticStringGetCpuId(){varmyCpu=newManagementClass("win32_Processor").GetInstances();varserial="";foreach(ManagementObjectcpuinmyCpu){varval=cpu.Properties["Processorid"].Value;serial+=val==null?"":val.ToString();}returnserial;}///<summary>///获取主板序列号///</summary>///<returns></returns>privatestaticStringGetMbId(){varmyMb=newManagementClass("Win32_BaseBoard").GetInstances();varserial="";foreach(ManagementObjectmbinmyMb){varval=mb.Properties["SerialNumber"].Value;serial+=val==null?"":val.ToString();}returnserial;}///<summary>///获取硬盘序列号///</summary>///<returns></returns>privatestaticStringGetHdId(){varlpm=newManagementClass("Win32_PhysicalMedia").GetInstances();varserial="";foreach(ManagementObjecthdinlpm){varval=hd.Properties["SerialNumber"].Value;serial+=val==null?"":val.ToString().Trim();}returnserial;}

解决方案五:
曹版主说过很多次了。cpuid不是唯一。。
解决方案六:
引用3楼xuanbg的回复:

///<summary>///获取CPU序列号///</summary>///<returns></returns>privatestaticStringGetCpuId(){varmyCpu=newManagementClass("win32_Processor").GetInstances();varserial="";foreach(ManagementObjectcpuinmyCpu){varval=cpu.Properties["Processorid"].Value;serial+=val==null?"":val.ToString();}returnserial;}///<summary>///获取主板序列号///</summary>///<returns></returns>privatestaticStringGetMbId(){varmyMb=newManagementClass("Win32_BaseBoard").GetInstances();varserial="";foreach(ManagementObjectmbinmyMb){varval=mb.Properties["SerialNumber"].Value;serial+=val==null?"":val.ToString();}returnserial;}///<summary>///获取硬盘序列号///</summary>///<returns></returns>privatestaticStringGetHdId(){varlpm=newManagementClass("Win32_PhysicalMedia").GetInstances();varserial="";foreach(ManagementObjecthdinlpm){varval=hd.Properties["SerialNumber"].Value;serial+=val==null?"":val.ToString().Trim();}returnserial;}

CPUID不是唯一的,如果想生成注册码,建议CPUID+主板序列号+硬盘序列号,这样重复的几率小
解决方案七:
或者使用Guid

时间: 2024-09-20 17:31:06

获取CPUID生成机器码,但是重复了的相关文章

C#中获取、生成随机数的三种方法

  这篇文章主要介绍了C#中获取.生成随机数的三种方法,本文讲解了Random 类生成法.Guid 类生成法以及RNGCryptoServiceProvider 类生成法,需要的朋友可以参考下 随机数的定义为:产生的所有数字毫无关系. 在实际应用中很多地方会用到随机数,比如需要生成唯一的订单号. 在C#中获取随机数有三种方法: 一.Random 类 Random类默认的无参构造函数可以根据当前系统时钟为种子,进行一系列算法得出要求范围内的伪随机数. 代码如下: Random rd = new R

php中使用uniqid mt_rand 生成随机不重复字符串的方法

方法一: <?PHP      $str = uniqid(mt_rand(),1);      echo 'sha1: ',sha1($str);      echo '<br>';      echo 'MD5: ',md5($str); 采用uniqid函数,配合mt_rand随机函数,最后使用散列值得出最终唯一值. 但是通过测试中,发现随机数的唯一性有些相同部分,大概有11位相同的(但无大碍)   第二种方法:GUID <?PHP        echo sprintf('

ASP:生成一个不重复的随即数字

重复 写这个文章绝对是偶然的偶然的机会,前年等一回的 元旦节,和 老婆上街 溜达,猛然想起买上一张福利彩票,结果 屁都没有中上,开春第一天,就写了个预测彩票中奖的程序,这其中的一个很关键的算法就是如何生成一个不重复的随即数字, 大家看完这个程序以后如果中奖,千万不要忘记豆腐了呀:) Sub CalCaPiao() Dim strCaiPiaoNoArr() As String Dim strSQL As String Dim strCaiPiaoNo As String strCaiPiaoNo

生成一个不重复的随即数字

重复 写这个文章绝对是偶然的偶然的机会,前年等一回的 元旦节,和 老婆上街 溜达,猛然想起买上一张福利彩票,结果屁都没有中上,开春第一天,就写了个预测彩票中奖的程序,这其中的一个很关键的算法就是如何生成一个不重复的随即数字,大家看完这个程序以后如果中奖,千万不要忘记豆腐了呀:)Sub CalCaPiao()Dim strCaiPiaoNoArr() As StringDim strSQL As StringDim strCaiPiaoNo As StringstrCaiPiaoNo = "01,

如何在ASP.NET中获取随机生成的cookie加密与验证密钥

asp.net|cookie|加密|随机     本文是从ASP.NE T 1.1升级到ASP.NET 2.0需要考虑的Cookie问题的补充,通过示例代码说明如何通过反射在ASP.NET 1.1与ASP.NET 2.0中获取随机生成的cookie加密与验证密钥.ASP.NET 1.1示例代码:            object machineKeyConfig = HttpContext.Current.GetConfig("system.web/machineKey");    

如何获取对固定列不重复的新DataTable

#region 获取对固定列不重复的新DataTable /// <summary> /// 获取对固定列不重复的新DataTable /// </summary> /// <param name="dt">含有重复数据的DataTable</param> /// <param name="colName">需要验证重复的列名</param> /// <returns>新的DataT

sql 中获取最后生成的标识值 IDENT_CURRENT ,@@IDENTITY ,SCOPE_IDENTITY 的用法和区别

原文:sql 中获取最后生成的标识值 IDENT_CURRENT ,@@IDENTITY ,SCOPE_IDENTITY 的用法和区别 IDENT_CURRENT 返回为任何会话和任何作用域中的指定表最后生成的标识值. 语法 IDENT_CURRENT('table_name') 参数 table_name 是将要返回其标识值的表的名称.table_name 的数据类型为 varchar,没有默认值. 返回类型 sql_variant 注释 IDENT_CURRENT 类似于 Microsoft

获取对固定列不重复的新DataTable

#region 获取对固定列不重复的新DataTable /// <summary> /// 获取对固定列不重复的新DataTable /// </summary> /// <param name="dt">含有重复数据的DataTable</param> /// <param name="colName">需要验证重复的列名</param> /// <returns>新的DataT

linux java cpu-在linux下如何用java代码获取cpuid 主板id

问题描述 在linux下如何用java代码获取cpuid 主板id 在linux平台下,如何用java代码获取cpulid和主板id dmidecode可以使用sudo去获取这些信息 但java代码(Runtime)无法sudo执行dmidecode命令 请问要怎么解决