利用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);
}