C++通过GetAdapatersInfo获取网卡配置信息
2021-05-17 06:29
标签:ext ring mib cps 大小 lob sse pip cout IP_ADDR_STRING也是一个结构体 完整代码如下 C++通过GetAdapatersInfo获取网卡配置信息 标签:ext ring mib cps 大小 lob sse pip cout 原文地址:https://www.cnblogs.com/chenxingyang/p/9747501.htmlDWORD GetAdaptersInfo(
PIP_ADAPTER_INFO pAdapterInfo, //指向一个缓冲区,用来取得IP_ADAPTER_INFO结构列表
PULONG pOutBufLen //指定上面缓冲区大小,如果大小不够,此参数返回所需大小
)typedef struct _IP_ADAPTER_INFO {
struct _IP_ADAPTER_INFO* Next;//指向链表中下一个适配器(计算机可能有多个适配器)
DWORD ComboIndex; //保留字段
char AdapterName[MAX_ADAPTER_NAME_LENGTH + 4];//使用ANSI字符串表示的适配器名称
char Description[MAX_ADAPTER_DESCRIPTION_LENGTH + 4];//使用ANSI字符串表示的适配器描述
UINT AddressLength;//适配器MAC地址以字节计算的长度(一般6个字节)
BYTE Address[MAX_ADAPTER_ADDRESS_LENGTH];//硬件地址以BYTE数组所表示
DWORD Index;//适配器索引
UINT Type;//适配器类型,主要有以下几种:
/*
* MIB_IF_TYPE_OTHER 1
* MIB_IF_TYPE_ETHERNET 6
* MIB_IF_TYPE_TOKENRING 9
* MIB_IF_TYPE_FDDI 15
* MIB_IF_TYPE_PPP 23
* MIB_IF_TYPE_LOOPBACK 24
* MIB_IF_TYPE_SLIP 28
*/
UINT DhcpEnabled;//指定这个适配器是否开启DHCP
PIP_ADDR_STRING CurrentIpAddress;//保留字段
IP_ADDR_STRING IpAddressList;//该适配器的IPv4地址链表
IP_ADDR_STRING GatewayList;//该适配器的网关IPv4地址链表
IP_ADDR_STRING DhcpServer;//该适配器的DHCP服务器的IPv4 地址链表
BOOL HaveWins;//该适配器是否使用WINS(Windows Internet名称服务)
IP_ADDR_STRING PrimaryWinsServer;//WINS服务器主IP地址
IP_ADDR_STRING SecondaryWinsServer;//WINS次IP地址
time_t LeaseObtained;//获取当前DCHP租用时间
time_t LeaseExpires;//当前DCHP租用期满时间
} IP_ADAPTER_INFO,*PIP_ADAPTER_INFO;typedef struct _IP_ADDR_STRING {
struct _IP_ADDR_STRING* Next;//指向下一个IP地址信息
IP_ADDRESS_STRING IpAddress;
IP_MASK_STRING IpMask;//子网掩码
DWORD Context;
} IP_ADDR_STRING, *PIP_ADDR_STRING;
typedef struct {
char String[4 * 4];
} IP_ADDRESS_STRING, *PIP_ADDRESS_STRING, IP_MASK_STRING, *PIP_MASK_STRING;
typedef struct {
char String[4 * 4];
} IP_ADDRESS_STRING, *PIP_ADDRESS_STRING, IP_MASK_STRING, *PIP_MASK_STRING;
#include
//释放分配的内存
if (pIPAdapterInfo)
delete pIPAdapterInfo;
return true;
}
文章标题:C++通过GetAdapatersInfo获取网卡配置信息
文章链接:http://soscw.com/index.php/essay/86599.html