很多时候我们需要获得Windows的网络参数,如IP、MAC、DNS、gateway、适配器状态等信息,Windows提供Iphelp函数供我们使用,但是使用起来感觉比较麻烦,这里封装了常用功能,希望有需要的朋友可以用到。

接口说明

功能都在CNetParams类中,开放的遍历函数如下:

BOOL EnumAdapters(FUNC_DEAL_APATER_INFO pFunc=NULL)
BOOL EnumDns(FUNC_DEAL_DNS_INFO  pFunc=NULL)
BOOL EnumIpMac(FUNC_DEAL_IPMAC_INFO pFunc=NULL)
BOOL EnumInterfaces(FUNC_DEAL_IF_INFO pFunc=NULL)

分别用来获得适配器信息,DNS的列表信息,IP-MAC映射信息(对应ARP解析缓存中的项),网络接口信息。

可以传入自定义的回调函数指针,默认有自己的回调处理函数如下:

void EnumAdaptersCallBack(PIP_ADAPTER_INFO pInfo)
void EnumDnsCallBack(PIP_ADDR_STRING pInfo)
void EnumIpMacCallBack(PMIB_IPNETROW pInfo)
void EnumInterfacesCallBack(PMIB_IFROW pInfo)

分别获取对应的信息,保存到指定的位置。

可以使用如下函数,获得这些信息:

vector<CAdapterInfo>& GetAdapters()
vector<CString>& GetDnsList()
map<CString, CString>& GetIpMacList()
vector<CInterfaceInfo>& GetInterfaces()

注意

还有一点特别需要指出的使用在本程序中,获得网关IP对应的MAC需要发送ARP包,然后在ARP缓存中得到IP对应的MAC信息,这是常用的技巧。

下载

源码下载链接