VC獲取MAC位址

2021-06-16 14:39:34 字數 1080 閱讀 3884

以前用wdk獲取一些硬體資訊,但是有些需要管理員許可權,比較尷尬。誰都不喜歡多彈乙個對話方塊。

現在又因為需要獲取mac位址,在網上收集了一下方法,還是有一些方法。使用過其中兩三種,比較推薦如下:(個人在vc2010下使用的)原因是,存在虛擬機器時,其他方法往往不能獲取真實mac位址,而是虛擬機器的。下面方法能比較準確的獲取真實物理網絡卡位址。當然,我沒測試多個物理網絡卡情況。

#include  

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

bool getmacaddress(cstring   &strmac)  

;  dword err;    

adapterinfosize   =   0;  

err   =   getadaptersinfo(null,   &adapterinfosize);  

if((err   !=   0)   &&   (err   !=   error_buffer_overflow))

//   分配網絡卡資訊記憶體  

padapterinfo   =   (pip_adapter_info)   globalalloc(gptr,   adapterinfosize);  

if(padapterinfo   ==   null)

if(getadaptersinfo(padapterinfo,   &adapterinfosize)   !=   0)

strmac.format(_t("%02x-%02x-%02x-%02x-%02x-%02x"),    

padapterinfo->address[0],  

padapterinfo->address[1],  

padapterinfo->address[2],  

padapterinfo->address[3],  

padapterinfo->address[4],  

padapterinfo->address[5]); 

globalfree(padapterinfo); 

return   true;  } 

同時附上另乙個**,wdk方法:

用VC獲取本機MAC位址

include stdafx.h include include include include include int getmac char mac astat,pastat astat adapter typedef struct lana enum lana enum lana enum l...

VC6獲取MAC位址方法

localhostinfo.cpp檔案 include include include iphlpapi.h pragma comment lib,iphlpapi.lib pragma comment lib,ws2 32.lib 全域性資料 u char g uclocalmac 6 本地mac...

在VC下獲取原始MAC位址

在vc下獲取原始mac位址 許多windows的作業系統都支援修改mac位址的功能,因此當使用者修改了mac位址之後,在dos視窗下使用ipconfig all命令和getmac v命令得到的網絡卡位址資訊都是經使用者修改過的。修改mac位址的方法可以在網上查詢,這裡主要講述如何通過對驅動程式的操作...