c#获取对象的唯一标识_关于uniqueidentifier:在C#中获取唯一标识符的最佳方法...

本问题已经有最佳答案,请猛点这里访问。

之前我曾问过类似的问题,但现在我减少了一些有关我所需要的限制。

我需要使用C#在计算机上高效地找到唯一标识符。 只要易于检索,它在任何特定计算机上都应始终保持不变,并且可以是许多因素的综合。

我曾考虑过将MAC地址用于WMI网络查询,但这太慢了,因为通常有10多个适配器。 使用WHERE IPEnabled = true子句可能会更好,但我认为可能要比这更好。

有想法吗?

(P.S.不一定完全是唯一的。只要碰撞的机会很小,那就是完美的。)

您是否要为计算机添加指纹或生成随机数?

请看以下答案:stackoverflow.com/a/3474966/754042,建议使用CPU ID + HDD ID作为相当可靠的唯一计算机标识符。

首先获取处理器ID,如下所示:(添加对System.Management的引用)

ManagementObjectCollection mbsList = null;

ManagementObjectSearcher mbs = new ManagementObjectSearcher("Select * From Win32_processor");

mbsList = mbs.Get();

string id ="";

foreach (ManagementObject mo in mbsList)

{

id = mo["ProcessorID"].ToString();

}

//然后可以获取主板序列号:

ManagementObjectSearcher mos = new ManagementObjectSearcher("SELECT * FROM Win32_BaseBoard");

ManagementObjectCollection moc = mos.Get();

string motherBoard ="";

foreach (ManagementObject mo in moc)

{

motherBoard = (string)mo["SerialNumber"];

}

您可以合并以上两个并获得唯一的ID

string myUniqueID = id + motherBoard;

Console.WriteLine(myUniqueID);

还要查看此链接查找计算机的硬件ID,CPU ID,主板ID,硬盘ID

主板序列号的问题是在WMI中很少填充。

@CJxD,在这种情况下,您也可以获取硬盘驱动器的ID,然后根据这三个值创建一个唯一的ID,它并不是100%唯一的,但在大多数情况下都可以使用

@CJxD,检查一下,codeproject.com/Articles/28678/他正在使用BIOS + MotherBoard + Processor,看起来还不错

机器SID也很稳定-可以通过以下多种方式来达到此目的...

如何使用WMI检索Windows计算机SID?

新安装的Windows是否会更改计算机SID?即它是特定于操作系统实例还是基于硬件?

每次安装Windows时生成。只要您可以接受可篡改的可变软件,MAC地址等硬件ID便可以使用。真正的"主板" ID是唯一的行业标准不变硬件ID是TPM,您可能已经安装了该设备。仍然不是那么普遍。

您可以在Windows产品激活上查看此技术公告。从您的评论来看,您可能不想花那么多篇幅,但也许可以为您提供一些启发...

WPA根据以下某些硬件项目的序列号生成哈希:

显示适配器

SCSI适配器

IDE适配器

网络适??配器(MAC地址)

RAM数量范围

处理器类型

处理器序列号

硬盘

硬盘卷序列号

CD–ROM / CD-RW / DVD-ROM

提到的链接不再起作用。改用它:technet.microsoft.com/en-us/library/bb457054.aspx

@JustShadow固定!

真正的好例子,您将在这里看到生成唯一计算机的信息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值