请教:在程序里有没有方法获取cpu的序列号?

发布于 2022-07-21 21:42:48 字数 48 浏览 8 评论 3

目前只知道获取MAC的方法,尚不知道获取其他硬件序列号的方法。

谢谢!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

旧伤还要旧人安 2022-07-25 10:25:55

IA-32体系的 就用楼上说的cpuid指令就能获得,上google上搜一下cpuid的相关文章.

自在安然 2022-07-22 03:46:58

原帖由 wanghun 于 2006-10-26 20:23 发表
目前只知道获取MAC的方法,尚不知道获取其他硬件序列号的方法。

谢谢!

>>
>>
>>参照的以前的老帖:
>>
>>

#include <stdio.h>;
#include <conio.h>;

int main(int argc,char **argv)
{
unsigned long s1,s2;
unsigned char vendor_id[]="------------";
char sel;
printf("Select the function:n1-------Read CPU id.n2-------Disable CPU id.n");
sel=getch();
switch(sel)
{
case '1':
asm xor eax,eax
asm cpuid
asm mov dword ptr vendor_id,ebx
asm mov dword ptr vendor_id[+4],edx
asm mov dword ptr vendor_id[+8],ecx
printf("%s-",vendor_id);
asm mov eax,01h
asm xor edx,edx
asm cpuid
asm mov s1,edx
asm mov s2,eax
printf("%08Xn%08X-",s1,s2);
asm mov eax,03h
asm xor ecx,ecx
asm xor edx,edx
asm cpuid
asm mov s1,edx
asm mov s2,ecx
printf("%08X-%08Xn",s1,s2);
break;
case '2':
asm{
mov ecx,119h
rdmsr
or eax,00200000h
wrmsr
}
printf("CPU id is disabled.n");
break;
}
return 0;
}

兔小萌 2022-07-21 22:24:00

应该是不可以,因为CPU并不像网卡那样以序列号作为自己的标识,标识应该是生产出来之后打上去的,和CPU的内部结构无关,所以也就无法从内部得到。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文