拨号网络的流量监控

搞了好久了,流量监控,代码处理上不太好,不过勉强可以用,希望大神能指导一下,完善一下


#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; 
}  


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值