怎么获取电脑唯一标识码,网卡MAC地址不好使

憧憬z 2014-07-19 07:15:53
有一个软件只允许一台电脑注册一个号,所以需要绑定电脑识别码。

要绝对独一无二的,唯一的电脑识别码。
且不考虑MAC地址可以修改的问题,就说要电脑唯一的,不重复的。

网上都说MAC是唯一的,但是亲身测试过才发现,重复的绝对有不少。

目前采用的是:MAC地址+CPU序列号+硬盘号,这个组合起来长度在50~80左右,都已经这么长了,但是还会有重复的。重复的概率大约为千分之一,不知道为什么会这么高。

说起来可能大家有可能不信....

请问有没有绝对唯一获取识别码的方法,求助。

...全文
26507 32 打赏 收藏 转发到动态 举报
写回复
用AI写文章
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
sjk131 2015-01-21
  • 打赏
  • 举报
回复
现在笔记本占了大多数,一般的笔记本都有有线、无线两张网卡。你可以将两张网卡的MAC生成硬件ID,这样两台电脑重复的纪律就大大降低了。
憧憬z 2014-08-08
  • 打赏
  • 举报
回复
引用 30 楼 Z65443344 的回复:
我觉得一开始的需求,从出发点就错了.
你的目的应该是每个人只能有一个账号,而不是每台机器只能绑定一个账号
这个跟重装系统没有关系,重装系统就不能注册了,那才不合理.
而限制每台机器只能有1个账号,你的游戏根本进不了网吧....


您好,可能您不太了解我的需求,有一点误解了,我的目的是一台电脑只能注册一个号,如果一个人有两台电脑,我允许他注册两个,是针对电脑的。我做的不是游戏,游戏的话,当然希望注册越多越好,哈哈。
当时有考虑到手机验证码,但是想减小支出,还有担心繁琐的验证容易引起用户反感,所以就使用了绑定硬件信息的方法。
没想到是这个结果,我想肯定很多人不知道网卡MAC有重复的可能,这是我从4000个用户里面,统计到的重复情况
於黾 2014-07-31
  • 打赏
  • 举报
回复
我觉得一开始的需求,从出发点就错了. 你的目的应该是每个人只能有一个账号,而不是每台机器只能绑定一个账号 这个跟重装系统没有关系,重装系统就不能注册了,那才不合理. 而限制每台机器只能有1个账号,你的游戏根本进不了网吧....
憧憬z 2014-07-27
  • 打赏
  • 举报
回复
引用 28 楼 caozhy 的回复:
那当然,所谓“CPU序列号”其实是CPUID,相同频率的同批次几百万个CPU的CPUID都一样。 所谓的“硬盘序列号”其实是卷序列号,这个其实属于文件系统的一部分,可以方便地修改。 要想唯一,可以用信用卡号,或者手机短信验证来实现。
本来想点“对我有用的”,不小心点到板砖了。 还是手机短信验证这个方法好,可行性高,比MAC地址有保障多了。非常感谢。
threenewbee 2014-07-26
  • 打赏
  • 举报
回复
那当然,所谓“CPU序列号”其实是CPUID,相同频率的同批次几百万个CPU的CPUID都一样。 所谓的“硬盘序列号”其实是卷序列号,这个其实属于文件系统的一部分,可以方便地修改。 要想唯一,可以用信用卡号,或者手机短信验证来实现。
我姓区不姓区 2014-07-26
  • 打赏
  • 举报
回复
引用 17 楼 weicongjin 的回复:
[quote=引用 1 楼 ojlovecd 的回复:] 生成一个guid,写入到注册表里
我是为了绑定电脑,防止一台电脑注册多个账号。[/quote] 没有问题啊,你生成一个guid,用MD5或其它加密方式先把它加密生成一个code,然后写到注册表里,然后把这个code跟用户的账号进行关联,用户再同一台电脑注册第二次的时候,你在你自己的数据库里就能找到他注册表里这个code存不存在了,如果已经存在了就不能注册。
javabegin 2014-07-26
  • 打赏
  • 举报
回复
引用 26 楼 weicongjin 的回复:
[quote=引用 22 楼 diaodiaop 的回复:] 原来你是为了防止一个电脑注册多个.... 如果你是取硬盘信息 当然不行了 而且你都说了 虚拟机的情况 硬件也不好使.. 所以 最终一个终极办法就是.. <加密狗>...既安全又可以卖钱...一举两得
哈哈, 加密狗太高规格了,用不起[/quote] 还是加密狗吧,很便宜 的,几十块1个。
憧憬z 2014-07-26
  • 打赏
  • 举报
回复
引用 22 楼 diaodiaop 的回复:
原来你是为了防止一个电脑注册多个.... 如果你是取硬盘信息 当然不行了 而且你都说了 虚拟机的情况 硬件也不好使.. 所以 最终一个终极办法就是.. <加密狗>...既安全又可以卖钱...一举两得
哈哈, 加密狗太高规格了,用不起
憧憬z 2014-07-26
  • 打赏
  • 举报
回复
引用 24 楼 ojlovecd 的回复:
[quote=引用 21 楼 weicongjin 的回复:] [quote=引用 13 楼 happy09li 的回复:] 读写注册表,,
引用 20 楼 ojlovecd 的回复:
[quote=引用 17 楼 weicongjin 的回复:] [quote=引用 1 楼 ojlovecd 的回复:] 生成一个guid,写入到注册表里
我是为了绑定电脑,防止一台电脑注册多个账号。[/quote] 没有问题啊,你生成一个guid,用MD5或其它加密方式先把它加密生成一个code,然后写到注册表里,然后把这个code跟用户的账号进行关联,用户再同一台电脑注册第二次的时候,你在你自己的数据库里就能找到他注册表里这个code存不存在了,如果已经存在了就不能注册。[/quote] 非常感谢您的解答。这个GUID确实是唯一的了,但是如果重装系统,或者用虚拟机就会失效了。所以我想用硬件信息来判断。[/quote] 嗯,没错,但这种情况毕竟不是常态。其实任何的障碍都是只防君子不防小人,能挡住90%的人就可以了,剩余的10%,可能你想尽任何招数他们都有办法能够破解。[/quote] 所言极是,谢谢
我姓区不姓区 2014-07-26
  • 打赏
  • 举报
回复
引用 21 楼 weicongjin 的回复:
[quote=引用 13 楼 happy09li 的回复:] 读写注册表,,
引用 20 楼 ojlovecd 的回复:
[quote=引用 17 楼 weicongjin 的回复:] [quote=引用 1 楼 ojlovecd 的回复:] 生成一个guid,写入到注册表里
我是为了绑定电脑,防止一台电脑注册多个账号。[/quote] 没有问题啊,你生成一个guid,用MD5或其它加密方式先把它加密生成一个code,然后写到注册表里,然后把这个code跟用户的账号进行关联,用户再同一台电脑注册第二次的时候,你在你自己的数据库里就能找到他注册表里这个code存不存在了,如果已经存在了就不能注册。[/quote] 非常感谢您的解答。这个GUID确实是唯一的了,但是如果重装系统,或者用虚拟机就会失效了。所以我想用硬件信息来判断。[/quote] 嗯,没错,但这种情况毕竟不是常态。其实任何的障碍都是只防君子不防小人,能挡住90%的人就可以了,剩余的10%,可能你想尽任何招数他们都有办法能够破解。
憧憬z 2014-07-26
  • 打赏
  • 举报
回复
引用 15 楼 Z65443344 的回复:
CPU序列号,从某个版本以后取到的都是统一的值,就是CPU型号,INTER不再提供唯一ID 硬盘序列号,某些电脑获取不到,一执行获取代码就会出错 MAC地址,不插网线时,有些系统获取到的是空 所以都不是很可靠
对的对的,还是大神你最了解。 现在CPU同型号的序列号一样,AMD也是的,囧... 我这里获取到的硬盘号,类似于这样的: WDC WD5000AADS-00S9B0 ATA Device WDC WD5000AAKX-22ERMA0 SATA Disk Device 上面是西数盘,不知道是不是按型号来定,就是挺有规律的。 MAC获取为空的情况也有,有时候同时也获取不了CPU序列号和硬盘号,其中应该有某些关联。
by_封爱 版主 2014-07-26
  • 打赏
  • 举报
回复
原来你是为了防止一个电脑注册多个.... 如果你是取硬盘信息 当然不行了 而且你都说了 虚拟机的情况 硬件也不好使.. 所以 最终一个终极办法就是.. <加密狗>...既安全又可以卖钱...一举两得
憧憬z 2014-07-26
  • 打赏
  • 举报
回复
引用 13 楼 happy09li 的回复:
读写注册表,,
引用 20 楼 ojlovecd 的回复:
[quote=引用 17 楼 weicongjin 的回复:] [quote=引用 1 楼 ojlovecd 的回复:] 生成一个guid,写入到注册表里
我是为了绑定电脑,防止一台电脑注册多个账号。[/quote] 没有问题啊,你生成一个guid,用MD5或其它加密方式先把它加密生成一个code,然后写到注册表里,然后把这个code跟用户的账号进行关联,用户再同一台电脑注册第二次的时候,你在你自己的数据库里就能找到他注册表里这个code存不存在了,如果已经存在了就不能注册。[/quote] 非常感谢您的解答。这个GUID确实是唯一的了,但是如果重装系统,或者用虚拟机就会失效了。所以我想用硬件信息来判断。
憧憬z 2014-07-25
  • 打赏
  • 举报
回复
引用 4 楼 diaodiaop 的回复:
首先 mac地址一般来说够用了.. 其次.你软件有多么大的价值让人去修改mac地址. 再者.MAC地址+CPU序列号+硬盘号就算不重复 人家万一换cpu或者网卡或者硬盘了呢?难道要人重新付费吗?
亲,我的软件价值不大,一个月净利几千万把块而已。 有些钻空子的人会利用这个来作弊,大量注册小号。 另外我只是为了绑定电脑,防止一台电脑注册多个账号,我是限制多注册的目的,不是为了记录付费与否。
憧憬z 2014-07-25
  • 打赏
  • 举报
回复
引用 2 楼 diaodiaop 的回复:
你是如何测试出来重复的? 难道你有很多很多个电脑吗?
我的软件有近万个注册用户,至少发现有5个是重复的
憧憬z 2014-07-25
  • 打赏
  • 举报
回复
引用 1 楼 ojlovecd 的回复:
生成一个guid,写入到注册表里
我是为了绑定电脑,防止一台电脑注册多个账号。
於黾 2014-07-23
  • 打赏
  • 举报
回复
CPU序列号,从某个版本以后取到的都是统一的值,就是CPU型号,INTER不再提供唯一ID 硬盘序列号,某些电脑获取不到,一执行获取代码就会出错 MAC地址,不插网线时,有些系统获取到的是空 所以都不是很可靠
_小黑_ 2014-07-23
  • 打赏
  • 举报
回复
引用 4 楼 diaodiaop 的回复:
首先 mac地址一般来说够用了.. 其次.你软件有多么大的价值让人去修改mac地址. 再者.MAC地址+CPU序列号+硬盘号就算不重复 人家万一换cpu或者网卡或者硬盘了呢?难道要人重新付费吗?
你 知道 海关 的 QP 吗 那个软件 你 换 台 电脑 就不好用
熙风 2014-07-23
  • 打赏
  • 举报
回复
读写注册表,,
雨何方 2014-07-23
  • 打赏
  • 举报
回复
我也赞同用MAC地址!
加载更多回复(12)

110,571

社区成员

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

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

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