获取计算机唯一识别码的问题,有大佬有经验吗?

2020-11-09 20:54:38 +08:00
 PUBG98k
Windows,macOS.下
如何给计算机 生成绝对唯一的 识别码.类似 Teamviewer 的 ID.
------------
需要考虑到 VMWARE 系统,以及服务器 云机.Ghost 系统.
------------
目前 ToDesk 使用的是:
uuid+mac,但是依然还是不行.
---
uuid 在 ghost 系统会重复,mac 地址重复.

系统安装时间,Win10 在更新补丁的时候,会更改.

硬盘序列号,在 vmware 的系统里是没有硬盘序列号的.
cpu 序列号 也是不唯一了.现在都改成生产批号了.

服务器系统又没有鼠标键盘显卡可以获取唯一码.
蛋疼~~~
10239 次点击
所在节点    程序员
66 条回复
PUBG98k
2020-11-10 16:09:03 +08:00
@FaiChou 感谢大佬回复.mac 目前我们用的是 IOPlatformSerialNumber+UUID+MAC
但是有些人使用无线网卡,mac 会经常变.所以 mac 打算去掉了
fuxiuyin
2020-11-10 16:22:26 +08:00
@PUBG98k 如果不登陆的话 TV 那种也不保证一直用一样的 ID 连上,TV 在处理这个问题的时候是让用户登陆然后列出来所有在线机器,用 ID 连接的也只目标在一次性远程协助。我觉得处理不完,比如用户电脑坏了,整个主机都换了就剩下硬盘没换,修好的电脑还在他办公桌上放着,他还想接着在家用相同的 ID 连上。或者彻底坏了,IT 给了一台新机器,IT 标准化以完成后放到了这个员工桌子上连上网,然后这个员工在家试了下说原来的 ID 用 ToDesk 连不上。不过有有效范围内的解决方案,比如在公司这种场景下每个人的员工账号是固定的,然后电脑入域之后可以给电脑一个{员工账号-01}.{公司域名}的机器名,然后就不换电脑硬件如何的固定下来的。依赖于办公场景加域,其实相当于一个登陆。
icyalala
2020-11-10 16:37:44 +08:00
设备指纹的原理是这样的:

收集若干标识符,比如 CPU 序列号、磁盘序列号、主板序列号、Mac 地址、显卡、内存、系统安装时间、内存大小、已安装字体、系统版本等等,加密后上报服务端,服务端生成一个唯一标识符下发。

后续当再次启动时,重新发送这数据,如果其中只有某几项发生变化,那仍然可以匹配到原有设备(也就是召回)。
kokutou
2020-11-10 17:06:52 +08:00
@PUBG98k #60
无线网卡 mac 地址也是固定的啊.
除非他一直换不同的无线网卡.

或者说获取的 mac 不对, 是那个 "针对此网络使用随机硬件地址" 产生的随机地址...
lxz6597863
2020-11-10 17:12:55 +08:00
BSD:

cat /etc/hostid
# or (might be empty)
kenv -q smbios.system.uuid


Linux:

cat /var/lib/dbus/machine-id
# or when not found (e.g. Fedora 20)
cat /etc/machine-id


OS X:

ioreg -rd1 -c IOPlatformExpertDevice | grep IOPlatformUUID


Windows:

reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography /v MachineGuid


-------------------
参考 https://github.com/denisbrodbeck/machineid
THESDZ
2020-11-10 17:44:38 +08:00
这不就是证书吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/723357

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX