C獲取windows的cpu序號和mac

2021-10-24 14:30:02 字數 2424 閱讀 3220

//#include "stdafx.h"

#include #include #include #include #include #include #include #pragma comment(lib,"ws2_32.lib")

#pragma comment(lib,"netapi32.lib")

//unsigned int veax;

//unsigned int vebx;

//unsigned int vedx;

//unsigned int vecx;

unsigned char vendor_id="------------";

unsigned long s1,s2;

/*//執行cpuid指令

void cpuid(unsigned int veax1)

}//做移位操作,把暫存器中的ascii碼,以字元形式輸出

void leftmove(unsigned int var)

}//做移位操作,把暫存器中的值以「%c」形式輸出

void lm(unsigned int var)}*/

//得到cpu的生產廠商(當eax值為0時),依次存放在ebx,edx,ecx中

void getcpuname()

printf("cpu生產商: %s\n",vendor_id);

}//獲得cpu序列號,獲得序列號需要兩個步驟,首先用eax = 1做引數,返回的eax中儲存序列號的高兩個word。

//用eax = 3做引數,返回ecx和edx按從低位到高位的順序儲存前4個word。

void getcpuseris()

printf("cpuid: %08x%08x",s1,s2);

_asm

if(s1!=0)printf("%08x",s1);

if(s2!=0)printf("%08x",s2);

printf("\n");}/*

//獲取ip位址

void checkip(void)

} wsacleanup( );//清理socket }}

*///獲取mac位址

int getmac(char * mac)

astat, *pastat;

astat adapter;

typedef struct _lana_enum

lana_enum;

lana_enum lana_enum;

uchar uretcode;

memset(&ncb, 0, sizeof(ncb));

memset(&lana_enum, 0, sizeof(lana_enum));

ncb.ncb_command = ncbenum;

ncb.ncb_buffer = (unsigned char *)&lana_enum;

ncb.ncb_length = sizeof(lana_enum);

uretcode = netbios(&ncb);

if(uretcode != nrc_goodret)return uretcode;

for(lana=0;lana<(lana_enum.length);lana++)

if(uretcode != nrc_goodret)return uretcode;

memset(&ncb, 0, sizeof(ncb));

ncb.ncb_command = ncbastat;

ncb.ncb_lana_num = lana_enum.lana[0];

strcpy((char*)ncb.ncb_callname, "*");

ncb.ncb_buffer = (unsigned char *)&adapter;

ncb.ncb_length = sizeof(adapter);

uretcode = netbios(&ncb);

if(uretcode != nrc_goodret)

return uretcode;

sprintf(mac,"%02x-%02x-%02x-%02x-%02x-%02x",

adapter.adapt.adapter_address[0],

adapter.adapt.adapter_address[1],

adapter.adapt.adapter_address[2],

adapter.adapt.adapter_address[3],

adapter.adapt.adapter_address[4],

adapter.adapt.adapter_address[5]

); return 0;

}void main()

Windows下獲取CPU頻率

一直想在windows下取得cpu的時鐘速度,找了好久終於找到了函式callntpowerinformation,要想使用它,首先必須包含powrprof.h標頭檔案和鏈結庫powerprof.lib.但是還有幾個問題 首先powrprof.h和許多其它在platform sdk中的標頭檔案一樣依然...

Windows程式設計 獲取系統CPU 個數

隨著多核cpu的普及,程式中有必要考慮利用多核的優勢來提高效能。比如當建立執行緒池或者程序池的時候,可以根據系統cpu的個數來設定執行緒池 程序池的大小。以下 示例如何獲取cpu的個數。view plaincopy to clipboardprint?typedef void winapi pgns...

C 獲取CPU資訊

include windows.h include iostream include string using namespace std 用來儲存資訊 dword deax dword debx dword decx dword dedx void execpuid dword veax 初始化c...