日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

获取网卡地址

發布時間:2025/3/18 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 获取网卡地址 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

如何獲取網卡地址(MAC地址):

VC++編寫的代碼,適用于windows環境,API實現

/*char *pMACAdr,返回網卡地址的buff,

?int *nBuffLen前一個參數的長度,

?int nAdapterID = 0網卡號,針對多網卡問題,有的機器不止一個網卡,默認為0

*/

?

#include <NB30.H>
#pragma comment(lib, "C:\\Program Files\\Microsoft Visual Studio\\VC98\\Lib\\Netapi32.lib")//自己找安裝目錄

BOOL GetMACAdress(char *pMACAdr, int *nBuffLen, int nAdapterID = 0)
{
?if (NULL == pMACAdr || *nBuffLen <= 0 || nAdapterID < 0) {
??*nBuffLen = 0;
??return FALSE;
?}
?memset(pMACAdr, 0, *nBuffLen);

?typedef struct _ASTAT_???
?{???
??ADAPTER_STATUS?? adapt;???
??NAME_BUFFER????? NameBuff?? [30];???
?}ASTAT, *PASTAT;?

?NCB??ncb;???
?UCHAR?? uRetCode;???
?ASTAT?? Adapter;?
?
?memset(&ncb, 0, sizeof(ncb));???
?ncb.ncb_command? = NCBRESET;???
?//網卡序號,一般從0開始
?ncb.ncb_lana_num = nAdapterID;??
?
?//send one NCBRESET command to the adapter car, for initialzing
?uRetCode = Netbios(&ncb);?? ???
?memset(&ncb, 0, sizeof(ncb));???
?ncb.ncb_command? = NCBASTAT;???
?ncb.ncb_lana_num = nAdapterID;//specify the adapter car ID??
????
?strcpy((char*)ncb.ncb_callname, "* ");???
?ncb.ncb_buffer = (PUCHAR)&Adapter;???????
?ncb.ncb_length = sizeof(Adapter);???
????
?//send the NCBRESET command to get the adapter car msg??
?uRetCode = Netbios(&ncb);?
?CString szMacAdr;??
?if(0 == uRetCode) {?? //獲得網卡信息成功
??szMacAdr.Format("%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]??
???);
?}
?if (szMacAdr.IsEmpty()) ?{
??*nBuffLen = 0;
??return FALSE;
?}
?else{
??int nMacLen = szMacAdr.GetLength();
??*nBuffLen = nMacLen <= *nBuffLen ? nMacLen : *nBuffLen;
??memcpy(pMACAdr, szMacAdr.GetBuffer(*nBuffLen), *nBuffLen);
??return TRUE;
?}
}

?

如果想現存的DLL或者ActiveX控制, 在我的資源里有封裝好的DLL與ActiveX控制下載, 直接調用接口使用即可

?

轉載于:https://www.cnblogs.com/MingoJiang/p/8682212.html

總結

以上是生活随笔為你收集整理的获取网卡地址的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。