获取以太网卡的MAC地址

来源:百度知道 编辑:UC知道 时间:2024/06/04 11:07:16
【实验目的】
1. 通过设计获取以太网卡物理地址的程序,初步掌握在应用层访问底层软硬件接口和属性的方法。
2. 设计一个程序,使得能够获取本机安装的以太网卡的物理地址。
通过Windows 98/Win2000中内置的NetApi32.DLL的功能来获取MAC本机的地址。熟悉NCBENUM,NCBASTAT和NCBRESET命令。
编写要点。
1)、需要包含头文件nb30.h并链接LIB文件
#include < nb30.h > // 该头文件声明了netbios的所有的函数
#pragma comment(lib, "Netapi32.lib") // 链接Netapi32.lib库,MAC获取中用到了NetApi32.DLL的功能
2)、MAC地址的获取
首先定义一个结构体_ASTAT_
typedef struct _ASTAT_
{ ADAPTER_STATUS adapt;
NAME_BUFFER NameBuff [30];
} ASTAT, * PASTAT;
ASTAT Adapter;
再定义一个存放返回网卡信息的变量Getmac
void Getmac (int lana_num)
{
NCB ncb;
UCHAR uRetCode;
memset( &ncb, 0, sizeof(ncb) );
ncb.ncb_command = NCBRESET; // 对选定的网卡发送NCBRESET命令,进行初始化
ncb.ncb_lana_num = lana_num;
uRetCode = Netbios( &ncb );
memset( &ncb, 0, sizeof(ncb) );
ncb.ncb_command = NCBASTAT; // 使用NCBASTAT命令以获取网卡的信息
ncb.ncb_lana_num = lana_num;

MAC(Media Access Control, 介质访问控制)地址是识别LAN(局域网)节点的标识。网卡的物理地址通常是由网卡生产厂家烧入网卡的EPROM(一种闪存芯片,通常可以通过程序擦写),它存储的是传输数据时真正赖以标识发出数据的电脑和接收数据的主机的地址。
也就是说,在网络底层的物理传输过程中,是通过物理地址来识别主机的,它一般也是全球唯一的。比如,著名的以太网卡,其物理地址是48bit(比特位)的整数,如:44-45-53-54-00-00,以机器可读的方式存入主机接口中。以太网地址管理机构(IEEE)将以太网地址,也就是48比特的不同组合,分为若干独立的连续地址组,生产以太网网卡的厂家就购买其中一组,具体生产时,逐个将唯一地址赋予以太网卡。
形象的说,MAC地址就如同我们身份证上的身份证号码,具有全球唯一性。
如何获取本机的MAC?
对于数量不多的几台机器,我们可以这样获取MAC地址:在Windows 98/Me中,依次单击“开始”→“运行” →输入“winipcfg”→回车。即可看到MAC地址。

在Windows 2000/XP中,依次单击“开始”→“运行”→输入“CMD”→回车→输入“ipconfig /all”→回车。即可看到MAC地址。

这好像不是vb语言的程序把

你想干什么?