如何用vc++開發讀取網絡卡mac位址的程式
實際的應用系統中,我們往往會需要在程式執行時獲取當前機器的網絡卡的mac位址,以便作為某種標識之用,如控制程式的合法性等。下文就如何用microsoft visual c++ 6.0開發這樣的程式演示如何實現其要點。
---- 這裡採用的方法是通過
windows 9x/nt/win2000中內建的netapi32.dll的功能來實現的,首先通過傳送ncbenum命令獲取網絡卡的數目和每個網絡卡的內部編號,然後對每個網絡卡標號傳送ncbastat命令獲取其mac位址。注意:這裡的網絡卡是指**了netbeui協議的
通訊協議棧,可以在網絡卡的屬性處檢視到。
---- 請執行
vc++,開啟乙個新的工程,選擇建立乙個win32 console程式,然後按下文輸入**,並請參見其中的注釋:
#include "stdafx.h"
#include < windows.h >
#include < wincon.h >
#include < stdlib.h >
#include < stdio.h >
#include < time.h >
---- // 因為是通過netapi來獲取網絡卡資訊,所以需要包含其題標頭檔案nb30.h #include < nb30.h >
typedef struct _astat_
astat, * pastat;
astat adapter;
---- // 定義乙個存放返回網絡卡資訊的變數
---- // 輸入引數:lana_num為網絡卡編號,一般地,從0開始,但在
windows 2000中並不一定是連續分配的
void getmac_one (int lana_num)
} int main(int argc, char* argv)
return 0; }
---- 此時,按f7編譯、直至通過,按f5執行即可。
---- 這段**可以直接嵌入相關的應用系統之中,或封裝成.dll或com控制項,以便可以在visual basic、visual
foxpro、power builder或
delphi等其他程式中呼叫
trackback:
讀取網絡卡的MAC位址
在實際的應用系統中,我們往往會需要在程式執行時獲取當前機器的網絡卡的mac位址,以便作為某種標識之用,如控制程式的合法性等。下文介紹如何用microsoft visualc 6.0開發這樣的程式。這裡採用的方法是通過windows 9x nt win2000中內建的netapi32.dll的功能來實...
VC 獲取物理網絡卡的MAC位址
獲取網絡卡的mac位址的方法很多,如 netbios,snmp,getadaptersinfo等。經過測試發現 netbios 方法在網線拔出的情況下獲取不到mac,而 snmp方法有時會獲取多個重複的網絡卡的mac,試來試去還是 getadaptersinfo方法比較好,網線拔出的情況下可以獲取m...
網絡卡MAC位址是什麼?如何修改網絡卡MAC位址
mac medium media access control 位址是針對網絡卡來說的,廠家在網絡卡在製作過程中,會在它的eprom裡面燒錄上一組數字,這組數字,每張網絡卡都各不相同,這就是網絡卡的mac 物理 位址。也就是說 乙個網絡卡對應乙個獨一無二的mac位址。mac位址和ip位址的區別 ma...