Windows获取本机MAC地址方法(C语言)
用到的方法有两种:Netbios()和GetAdaptersInfo();
Netbios
获取步骤主要分为三步:
一、枚举本机所有LAN
二、重设每个LANA(初始化所有LANA)
三、获取网卡信息(填充数据结构)
如果只有单网卡的情况下,第一步可以不用有,但是在第三步之前一定要对所有的LANA进行重设即初始化。
实例代码如下:
#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#pragma comment(lib, "NetAPI32.Lib")
typedef struct _ASTAT_
{
ADAPTER_STATUS adapt; //包含一个网络适配器的信息
NAME_BUFFER NameBuff [30];
}ASTAT, * PASTAT; //定义一个网卡的结构体
//解释并执行指定的网络控制块(NCB)
int main (void)
{
NCB ncb; //网络控制块
ASTAT Adapter; //包含MAC地址的数据结构
LANA_ENUM lana_enum; //包含当前LAN适配器的数量
UCHAR uRetCode; //返回结果码
//UCHAR *mac={};
//用Netbios()获取网卡信息(MAC\IP\网关…)的基本步骤:
//一、枚举本机所有LAN
//二、重设每个LANA(初始化所有LANA)
//三、获取网卡信息(填充数据结构)
//一、NCBENUM:枚举LAN适配器(LANA)号码
memset(&ncb, 0, sizeof(ncb));
memset(&lana_enum,