当前位置: 首页 > 编程语言 > C#

如何使用C#来唯一标识一台计算机?分享

时间:2023-04-10 17:52:33 C#

C#如何唯一标识一台电脑?如何使用C#(.Net/Mono,本机应用程序)唯一标识计算机(主板)?版本。我们可以使用类似这样的东西来识别.Net中的主板(请参阅在C#中获取唯一系统标识符):usingSystem.Management;...ManagementObjectSearchersearcher=newManagementObjectSearcher("select*fromWin32_MotherboardDevice");...但不幸的是Mono不支持System.Management。如何在Linux的Mono下执行此操作?-我不知道:(网卡的MAC地址怎么样?写一个函数,将一些独特的硬件参数作为输入,并从中生成一个散列。例如,Windows激活会查看以下硬件特征:你可以选择其中一些来生成唯一计算机标识符。请参阅:使用C#获取唯一系统标识符试试这个:http://carso-owen.blogspot.com/2007/02/how-to-get-my-motherboard-serial-number.html就我个人而言,我会选择硬盘序列号。如果主板坏掉并被更换,则PC不再有效。如果更换硬盘,则无所谓,因为软件已经打开它。当然,另一方面,如果硬盘驱动器只是简单地移动到其他地方,信息就会随之而来,所以你可能想看看序列号的组合,这取决于你想要什么。你实际上有MotherboardID,CPUID,diskserial和MACaddress,从经验来看,它们都不是100%。我们的统计数据显示0.04%的测试机器没有给出任何信息,我们甚至无法读取计算机名称。也许这些是某种虚拟PC、HyperV或VMWare实例,或者它们只是被锁定了?无论如何,您的设计必须能够处理这些情况。磁盘序列是最可靠的,但易于更改,mac可以更改并取决于在读取时应用过滤,如果添加了设备驱动程序(hyperv、wireshark等),它可能会改变。主板和CPUID有时会返回无效的“NONE”、“AAAA..”、“XXXX...”等值。您还应该知道这些函数的调用速度可能很慢(即使在快速的PC上它们也可能需要几秒钟),因此可能值得在后台线程中尽早启动它们,理想情况下您不想阻止它们。以上就是C#学习教程:如何用C#来唯一标识一台计算机?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: