2 u013245671 u013245671 于 2015.06.07 11:14 提问

利用Winpcap获取网卡信息有问题
以下代码是用来获取玩卡信息的,但是为什么获取不到网卡的信息。显示以下信息。求大神指教。
![图片说明](http://img.ask.csdn.net/upload/201506/07/1433646757_490053.png)
for(m_pDev = m_pAllDevs;m_pDev != NULL;m_pDev = m_pDev->next)
{
    char temp[400];
    CString strText;
    HTREEITEM hSubItem = m_treeAdapater.InsertItem(m_pDev->name,root);
    if(m_pDev->description != NULL)
    {
        strText.Format("网卡描述信息 : %s",m_pDev->description);
        m_treeAdapater.InsertItem(strText,hSubItem);
    }
    else
    {
        m_treeAdapater.InsertItem("网卡描述信息 : 空",hSubItem);
    }

    if(m_pDev->addresses != NULL && m_pDev->addresses->addr != NULL)
    {
        iptos(((struct sockaddr_in *)m_pDev->addresses->addr)->sin_addr.s_addr,temp);
        strText.Format("IP地址 : %s",temp);
        m_treeAdapater.InsertItem(strText,hSubItem);            
    }
    else
    {
        m_treeAdapater.InsertItem("IP地址 :  空",hSubItem);
    }

    if(m_pDev->addresses != NULL && m_pDev->addresses->broadaddr != NULL)
    {
        iptos(((struct sockaddr_in *)m_pDev->addresses->broadaddr)->sin_addr.s_addr,temp);      
        strText.Format("广播地址 : %s",temp);
        m_treeAdapater.InsertItem(strText,hSubItem);    

    }
    else
    {
        m_treeAdapater.InsertItem("广播地址 : 无",hSubItem);
    }

    if(m_pDev->addresses!=NULL && m_pDev->addresses->netmask!=NULL)
    {
        iptos(((struct sockaddr_in *)m_pDev->addresses->netmask)->sin_addr.s_addr,temp);
        strText.Format("子网掩码 : %s",temp);
        m_treeAdapater.InsertItem(strText,hSubItem);    
    }   
    else
    {
        m_treeAdapater.InsertItem("子网掩码 : 空",hSubItem);
    }

    if(m_pDev->addresses!=NULL && m_pDev->addresses->dstaddr!=NULL)
    {
        iptos(((struct sockaddr_in *)m_pDev->addresses->dstaddr)->sin_addr.s_addr,temp);            
        strText.Format("目地地址 : %s",temp);
        m_treeAdapater.InsertItem(strText,hSubItem);    
    }
    else
    {
        m_treeAdapater.InsertItem("目地地址 : 无",hSubItem);
    }       

}
m_pDev = NULL;
m_treeAdapater.Expand(root,TVE_EXPAND);
return TRUE; 

2个回答

devmiao
devmiao   Ds   Rxr 2015.06.07 11:23

用ipconfig看下,网卡插网线没有。
你也可以调用ipconfig重定向获取这些信息。

Carry_Dominator
Carry_Dominator   2015.06.07 15:39

winpcap的目的不是在win32应用程序提供访问网络底层的能力。你为什么自己要编程序呢

Csdn user default icon
上传中...
上传图片
插入图片