c++ 本地流量统计
#include "stdafx.h "
#include <windows.h>
#include <Iphlpapi.h>
#pragma comment(lib, "Iphlpapi.lib ")
int main(int argc, char* argv[])
{
PMIB_IFTABLE m_pTable = NULL;
DWORD m_dwAdapters = 0;
ULONG uRetCode = GetIfTable(m_pTable, &m_dwAdapters, TRUE);
if (uRetCode == ERROR_NOT_SUPPORTED)
{
return (-1);
}
if (uRetCode == ERROR_INSUFFICIENT_BUFFER)
{
m_pTable = (PMIB_IFTABLE)new BYTE[65535];//MIB_IFTABLE[m_dwAdapters];
}
DWORD dwLastIn = 0;
DWORD dwLastOut = 0;
DWORD dwBandIn = 0;
DWORD dwBandOut = 0;
do
{
GetIfTable(m_pTable, &m_dwAdapters, TRUE);
DWORD dwInOctets = 0;
DWORD dwOutOctets = 0;
for (UINT i = 0; i < m_pTable-> dwNumEntries; i++)
{
MIB_IFROW Row = m_pTable-> table[i];
dwInOctets += Row.dwInOctets;
dwOutOctets += Row.dwOutOctets;
}
dwBandIn = dwInOctets - dwLastIn;
dwBandOut = dwOutOctets - dwLastOut;
if (dwLastIn <= 0)
{
dwBandIn = 0;
}
else
{
dwBandIn = dwBandIn / 1024;
}
if (dwLastOut <= 0)
{
dwBandOut = 0;
}
else
{
dwBandOut = dwBandOut / 1024;
}
dwLastIn = dwInOctets;
dwLastOut = dwOutOctets;
printf( "收到字节: %u bytes\n ", dwLastIn);
printf( "发送字节: %u bytes\n ", dwLastOut);
printf( "下行速度: %u KB\n ", dwBandIn);
printf( "上行速度: %u KB\n ", dwBandOut);
printf( "--------------------------\n ");
Sleep(1000);
}while (TRUE);
delete [] m_pTable;
return (0);
#include <windows.h>
#include <Iphlpapi.h>
#pragma comment(lib, "Iphlpapi.lib ")
int main(int argc, char* argv[])
{
PMIB_IFTABLE m_pTable = NULL;
DWORD m_dwAdapters = 0;
ULONG uRetCode = GetIfTable(m_pTable, &m_dwAdapters, TRUE);
if (uRetCode == ERROR_NOT_SUPPORTED)
{
return (-1);
}
if (uRetCode == ERROR_INSUFFICIENT_BUFFER)
{
m_pTable = (PMIB_IFTABLE)new BYTE[65535];//MIB_IFTABLE[m_dwAdapters];
}
DWORD dwLastIn = 0;
DWORD dwLastOut = 0;
DWORD dwBandIn = 0;
DWORD dwBandOut = 0;
do
{
GetIfTable(m_pTable, &m_dwAdapters, TRUE);
DWORD dwInOctets = 0;
DWORD dwOutOctets = 0;
for (UINT i = 0; i < m_pTable-> dwNumEntries; i++)
{
MIB_IFROW Row = m_pTable-> table[i];
dwInOctets += Row.dwInOctets;
dwOutOctets += Row.dwOutOctets;
}
dwBandIn = dwInOctets - dwLastIn;
dwBandOut = dwOutOctets - dwLastOut;
if (dwLastIn <= 0)
{
dwBandIn = 0;
}
else
{
dwBandIn = dwBandIn / 1024;
}
if (dwLastOut <= 0)
{
dwBandOut = 0;
}
else
{
dwBandOut = dwBandOut / 1024;
}
dwLastIn = dwInOctets;
dwLastOut = dwOutOctets;
printf( "收到字节: %u bytes\n ", dwLastIn);
printf( "发送字节: %u bytes\n ", dwLastOut);
printf( "下行速度: %u KB\n ", dwBandIn);
printf( "上行速度: %u KB\n ", dwBandOut);
printf( "--------------------------\n ");
Sleep(1000);
}while (TRUE);
delete [] m_pTable;
return (0);
...全文
相关推荐
c++ 本地机子流量统计
在C++编程中,实现本地机子流量统计通常涉及到操作系统底层的网络接口信息获取,这通常通过Windows API中的函数来完成。
C++网络流量统计程序实战分析
C++是一种高级编程语言,它结合了面向对象编程和系统编程的特性。其设计哲学强调代码的高性能、多范式编程能力和灵活性。由于其具有直接操作内存的能力,C++常用于开发需要高效率和硬件级别的控制的应用程序,例如游戏开发、实时系统和高性能服务器。网络协议是为网络通信所定义的一系列规则,如TCP/IP协议。而Socket则是这些规则的编程实现。Socket编程允许程序员通过网络发送和接收数据。不同的协议(TCP、UDP)和不同的传输层可以使用不同的socket类型。
IP流量分析程序
综合以上所述,这个“IP流量分析程序”结合了C++编程、网络抓包技术、IP协议解析以及数据统计,是一个实用的网络诊断和分析工具。开发者通过它,可以深入洞察网络通信细节,有效地管理和维护网络环境。
易语言源码win8流量统计易语言源码
该易语言源码项目专为Windows 8操作系统设计,具备完整的网络流量统计功能,能够实时监测并记录系统中各网络接口的上行与下行数据传输量。
基于vc编写的网络流量控制程序
【描述解析】"基于vc编写的网络流量控制程序 检测本机流量的小程序"表明这个程序专注于本地计算机的网络流量检测,而不是涉及网络中的其他设备。


