概述
第一种方法:使用NetBIOS
包含头文件:nb30.h
支持库:Netapi32.lib
该方法只使用一个函数:Netbios(PNCB pncb),但是使用过程有点复杂,第二种方法比较简单
需要用到3个结构:NCB,LANA_ENUM,ADAPTER_STATUS
(只写上核心部分,其实如果只想要物理网卡的MAC地址,直接调用第3步就行了,这里可以列出多个MAC地址,除物理的外都是虚拟的)
1、用NCBENUM命令枚举系统中网卡的数量
NCB ncb;
LANA_ENUM lana_enum;
ADAPTER_STATUS adapter;
memset(&ncb,0,sizeof(ncb));
ncb.ncb_command = NCBENUM;
ncb.ncb_buffer = (unsigned char*)&lana_enum;
ncb.ncb_length = sizeof(lana_enum);
Netbios(&ncb); 成功则返回0,网卡数量在lana_enum.length
2、用NCBRESET重置网卡,网卡接受新的NCB命令时必须重置
memset(&ncb,0,sizeof(ncb));
ncb.ncb_command = NCBRESET;
ncb.ncb_lana_num = lana_enum.lana; lana_enum是第一步获取
Netbios(&ncb);
3、用NCBASTAT接受本地或远程接口卡的状态
memset(&ncb,0,sizeof(ncb));
ncb.ncb_command = NCBASTAT;
ncb.ncb_lana_num = lana_enum.lana; 同样为第一步获取的
strcpy((char*)ncb.ncb_callname,"* "); 该参数书上说是被呼叫应用的名字,还没搞懂啥意思
ncb.ncb_buffer = (unsigned char*)&adapter;
ncb.ncb_length = sizeof(adapter);
Netbios(&ncb);
MAC网卡地址:adapter.adapter_address
第二种方法:使用GetAdapterInfo
查询SDK有范例
最后
以上就是爱听歌寒风为你收集整理的获取网卡的MAC地址的全部内容,希望文章能够帮你解决获取网卡的MAC地址所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复