怎样生成目标电脑不变的唯一机器码

moshyj9kL 2011-08-11 02:20:12
cpu编号和硬盘编号 在网吧,这两项所有的电脑取出来都是一摸一样的.

网卡MAC地址,这个地址是可以通过注册表修改的,并且重装系统等情况就会改变.

该怎么获取唯一不变的机器码?是否有其他好的方法?

...全文
1801 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
yis74839 2012-09-25
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]
C# code

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Management;
……
[/Quote]
cpuid现在基本获取不到了,获取到的话,不同机器都是一样的,win32_diskdirve Model 读出来的是硬盘型号方面的信息
无常名 2011-08-12
  • 打赏
  • 举报
回复
给某一单位做了一个软件,用的是CPU编号,结果这一批电脑CPU编号一样。。。。。结果。。。。。。
呵呵。。。。
moshyj9kL 2011-08-11
  • 打赏
  • 举报
回复
/// 读取CPU机器码
/// </summary>
/// <returns></returns>
public static string Get_Cpu_Id()
{
string cpuInfo = " ";
using (ManagementClass cimobject = new ManagementClass("Win32_Processor"))
{
ManagementObjectCollection moc = cimobject.GetInstances();

foreach (ManagementObject mo in moc)
{
cpuInfo = mo.Properties["ProcessorId"].Value.ToString();
mo.Dispose();
}
}
return cpuInfo.ToString();
}
/// <summary>
/// 读取硬盘机器码
/// </summary>
/// <returns></returns>
public static string Get_HardDisk_Id()
{
string HDid = " ";
using (ManagementClass cimobject1 = new ManagementClass("Win32_DiskDrive"))
{
ManagementObjectCollection moc1 = cimobject1.GetInstances();
foreach (ManagementObject mo in moc1)
{
HDid = (string)mo.Properties["Model"].Value;
mo.Dispose();
}
}
return HDid.ToString();
}


这两段代码


foreach (ManagementObject mo in moc)
{
cpuInfo = mo.Properties["ProcessorId"].Value.ToString();
mo.Dispose();
}

cpuInfo 的值会被后面的替代,这样有意义吗?
火星大能猫 2011-08-11
  • 打赏
  • 举报
回复
读CPU不可靠,硬盘有的无法读取,
我是读取系统安装日期+序列号来解决的.
当然,没有完美的解决方法,我的软件重装系统就得注册.
湖中仙人 2011-08-11
  • 打赏
  • 举报
回复
那就再加个主板好了
isjoe 2011-08-11
  • 打赏
  • 举报
回复
最好的方法还是加密狗密钥方式。。。。。毕竟电脑随时都有可能更换任何硬件。
ningfeihu 2011-08-11
  • 打赏
  • 举报
回复
分分
zhao_zps 2011-08-11
  • 打赏
  • 举报
回复

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Management;
using System.Security.Cryptography;

/// <summary>
/// 读取CPU机器码
/// </summary>
/// <returns></returns>
public static string Get_Cpu_Id()
{
string cpuInfo = " ";
using (ManagementClass cimobject = new ManagementClass("Win32_Processor"))
{
ManagementObjectCollection moc = cimobject.GetInstances();

foreach (ManagementObject mo in moc)
{
cpuInfo = mo.Properties["ProcessorId"].Value.ToString();
mo.Dispose();
}
}
return cpuInfo.ToString();
}
/// <summary>
/// 读取硬盘机器码
/// </summary>
/// <returns></returns>
public static string Get_HardDisk_Id()
{
string HDid = " ";
using (ManagementClass cimobject1 = new ManagementClass("Win32_DiskDrive"))
{
ManagementObjectCollection moc1 = cimobject1.GetInstances();
foreach (ManagementObject mo in moc1)
{
HDid = (string)mo.Properties["Model"].Value;
mo.Dispose();
}
}
return HDid.ToString();
}
/// <summary>
/// 读取网卡机器码
/// </summary>
/// <returns></returns>
public static string Get_NetworkCard_Id()
{
string MoAddress = " ";
using (ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration"))
{
ManagementObjectCollection moc2 = mc.GetInstances();
foreach (ManagementObject mo in moc2)
{
if ((bool)mo["IPEnabled"] == true)
MoAddress = mo["MacAddress"].ToString();
mo.Dispose();
}
}
return MoAddress.ToString();
}
  • 打赏
  • 举报
回复
为啥非要获取机器码呢?
  • 打赏
  • 举报
回复
学习了
等答案
rekym 2011-08-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 moshyj9kl 的回复:]
回楼上,下午我朋友测试了,两台网吧电脑取出来的这两项是一样的.
[/Quote]

硬盘的物理编号...??????

LZ用everest 里面显示的硬盘编号,看下是不是一样的,好像用C#的类读取的不一样
蝶恋花雨 2011-08-11
  • 打赏
  • 举报
回复
GUID?
51Crack 2011-08-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 honkerhero 的回复:]
cpu编号和硬盘编号, 这两个怎么可能是一样的, 理论上全球唯一的
[/Quote]
现在的屌电脑,同一批的号基本一样
zlblog 2011-08-11
  • 打赏
  • 举报
回复
恩,就是同时装的机器,cpu编号和硬盘编号就是一样的。

验证这个,编码的确不好弄。

不过简单一些就用这两个也可以。不知道楼主做的东西是什么。

楼主用加密狗不。硬件加密就可以。

有问题请到我的博客留言,我会及时回复的。


fengying0529 2011-08-11
  • 打赏
  • 举报
回复
顶一个
moshyj9kL 2011-08-11
  • 打赏
  • 举报
回复
回楼上,下午我朋友测试了,两台网吧电脑取出来的这两项是一样的.
honkerhero 2011-08-11
  • 打赏
  • 举报
回复
cpu编号和硬盘编号, 这两个怎么可能是一样的, 理论上全球唯一的

110,572

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧