请教:在程序里有没有方法获取cpu的序列号?
目前只知道获取MAC的方法,尚不知道获取其他硬件序列号的方法。
谢谢!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
目前只知道获取MAC的方法,尚不知道获取其他硬件序列号的方法。
谢谢!
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(3)
IA-32体系的 就用楼上说的cpuid指令就能获得,上google上搜一下cpuid的相关文章.
>>
>>
>>参照的以前的老帖:
>>
>>
#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;
}
应该是不可以,因为CPU并不像网卡那样以序列号作为自己的标识,标识应该是生产出来之后打上去的,和CPU的内部结构无关,所以也就无法从内部得到。