我是靠谱客的博主 爱听歌寒风,最近开发中收集的这篇文章主要介绍获取网卡的MAC地址,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 

第一种方法:使用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地址所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(34)

评论列表共有 0 条评论

立即
投稿
返回
顶部