如何用VC 開發讀取網絡卡MAC位址的程式

2021-09-05 17:47:57 字數 1139 閱讀 1699

如何用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...