搞了好久了,流量监控,代码处理上不太好,不过勉强可以用,希望大神能指导一下,完善一下
#include <windows.h>
#include <iphlpapi.h>
#include <stdio.h>
#pragma comment ( lib, "iphlpapi.lib" )
int wangka(int last_totle)
{
MIB_IFTABLE *pIfTable = NULL;
ULONG dwSize = 0;
DWORD dwRet;
dwRet = GetIfTable( pIfTable, &dwSize, TRUE );
if ( dwRet == ERROR_INSUFFICIENT_BUFFER )
{
pIfTable = ( MIB_IFTABLE * ) new char[dwSize];
if ( pIfTable != NULL )
{
dwRet = GetIfTable( pIfTable, &dwSize, TRUE );
if ( dwRet == NO_ERROR )
{
printf( "dwNumEntries = %u\n", pIfTable->dwNumEntries );
int i=13;
//for (unsigned int i=0; i<(pIfTable->dwNumEntries); i++ )
// {
if (pIfTable->table[i].dwType=MIB_IF_TYPE_PPP&&
pIfTable->table[i].dwOutOctets>0&&
pIfTable->table[i].dwInOctets>0)
{
printf("table[%1d].dwIndex = %u\n",i,(pIfTable->table[i]).dwIndex );
//printf("out = %d\n",pIfTable->table[i].dwOutOctets);
//printf("in = %d\n",pIfTable->table[i].dwInOctets);
//printf("dwSpeed = %u\n\n",(pIfTable->table[i]).dwSpeed );
int recflow=pIfTable->table[i].dwInOctets-last_totle;
last_totle=pIfTable->table[i].dwInOctets;
printf("下载=%dB\n",recflow);
}
// }
}
else
{
printf( "Some error occured!\n" );
}
}
else
{
printf( "Memory allocate failue\n" );
}
}
else
{
printf( "Some error occured!\n" );
}
return last_totle;
}
int main( )
{
int last_totle=0;
while(1)
{
Sleep(2000);
system("cls");
last_totle=wangka(last_totle);
}
return 0;
}