简单枚举网卡信息

来源:互联网 发布:windows安装器装win10 编辑:程序博客网 时间:2024/04/29 22:11

利用iphlpapi.h文件中相关函数可以获取很多与网络有关的东西,例如当前TCP/UDP连接和网卡信息等,除此之外还可以查看每块网卡发送和接收字节数。

void ShowInterfaceInfo()
{
    DWORD dwNum = 0;
    DWORD dwRet = GetNumberOfInterfaces(&dwNum);
    if (dwRet != NO_ERROR)
        return;
    PMIB_IFTABLE pIfTable = NULL;
    DWORD dwSize = 0;
    dwRet = GetIfTable(pIfTable,&dwSize,TRUE);
    if (dwRet == ERROR_INSUFFICIENT_BUFFER)
        pIfTable = (PMIB_IFTABLE)malloc(dwSize);
    dwRet = GetIfTable(pIfTable,&dwSize,TRUE);
    if (dwRet != NO_ERROR)
    {
        if (pIfTable != NULL)
            free(pIfTable);
        return;
    }

    for (int i=0; i<pIfTable->dwNumEntries; i++)
    {
        PMIB_IFROW pMibRow = &pIfTable->table[i];
        cout<<pMibRow->bDescr<<endl; //网卡描述
        cout<<"Received "<<pMibRow->dwInOctets<<endl; //接收字节
        cout<<"Sent "<<pMibRow->dwOutOctets<<endl<<endl; //发送字节
    }

    if (pIfTable != NULL)
        free(pIfTable);
}

原创粉丝点击