1、定义数据结构
typedef struct s_ip_fname
{
//一个网卡可能有多个IP地址
std::vector ips;
std::string mac;
}s_ip_fname;
2、 函数
static int get_ipfname(std::vector &ff)
{
#define ADDR(x) pIpAdapterInfo->Address[x]
PIP_ADAPTER_INFO pIpAdapterInfo = new IP_ADAPTER_INFO();
unsigned long stSize = sizeof(IP_ADAPTER_INFO);
int nRel = GetAdaptersInfo(pIpAdapterInfo, &stSize);
DWORD netCardNum = 0;
GetNumberOfInterfaces(&netCardNum);
int IPnumPerNetCard = 0;
if (ERROR_BUFFER_OVERFLOW == nRel)
{
delete pIpAdapterInfo;
pIpAdapterInfo = (PIP_ADAPTER_INFO)new BYTE[stSize];
nRel = GetAdaptersInfo(pIpAdapterInfo, &stSize);
//return -1;
}
if (ERROR_SUCCESS == nRel)
{
//maybe we have >1 network card
while (pIpAdapterInfo)
{
s_ip_fname ipf;
switch (pIpAdapterInfo->Type)
{
case MIB_IF_TYPE_OTHER:
//cout
关注
打赏