求可以统计网络流量的VC代码,就象是金山网镖下面的那样
求可以统计网络流量的VC代码,就象是金山网镖下面的那样。。接收××K,发送××K,那种,会的千万帮忙阿。。。。
现在作个东西,需要统计现在的网络流量。是累加的,在VC++中实现
希望高手帮忙,谢谢了
---------------------------------------------------------------
winpcap有个统计模式,可以很好解决你的问题
---------------------------------------------------------------
BOOL Network()
{
DWORD dwIndex;
DWORD dwNumber;
DWORD dwResult;
ULONG OutBufLen;
IP_ADAPTER_INFO AdapterInfo;
PIP_ADDR_STRING pAddrString;
PIP_ADAPTER_INFO pAdapterNext;
MIB_IFROW IfRow;
OutBufLen = sizeof(IP_ADAPTER_INFO);
dwResult = GetAdaptersInfo(&AdapterInfo,&OutBufLen);
if(dwResult == ERROR_BUFFER_OVERFLOW)
{
GetAdaptersInfo(&AdapterInfo,&OutBufLen);
}
else if (dwResult != ERROR_SUCCESS)
{
printf("GetAdaptersInfo Error: %d/n",GetLastError());
return FALSE;
}
printf("/t/t=== Network Interface ===/n/n");
pAdapterNext = &AdapterInfo;
while(pAdapterNext != NULL)
{
printf("AdapterName:/t %s/n",pAdapterNext->AdapterName);
printf("Description:/t %s/n",pAdapterNext->Description);
dwIndex = pAdapterNext->Index;
printf("Address:/t ");
for(dwNumber = 0;dwNumber < pAdapterNext->AddressLength - 1; dwNumber++)
{
printf("%.2X-",pAdapterNext->Address[dwNumber]);
}
printf("%.2X/n",pAdapterNext->Address[dwNumber]);
printf("Type:/t/t ");
switch(pAdapterNext->Type)
{
case MIB_IF_TYPE_OTHER:
printf("Other/n");
break;
case MIB_IF_TYPE_ETHERNET:
printf("Ethernet/n");
break;
case MIB_IF_TYPE_FDDI:
printf("FDDI/n");
break;
case MIB_IF_TYPE_PPP:
printf("PPP/n");
break;
case MIB_IF_TYPE_LOOPBACK:
printf("LoopBack/n");
break;
case MIB_IF_TYPE_SLIP:
printf("Slip/n");
break;
default:
printf("/n");
break;
}
printf("IpAddressList:/t %s/t/t%s/n","IP Address","Subnet Mask");
pAddrString = &pAdapterNext->IpAddressList;
while(pAddrString != NULL)
{
printf("/t/t %-15s/t",pAddrString->IpAddress.String);
printf("%s/n",pAddrString->IpMask.String);
pAddrString = pAddrString->Next;
}
pAddrString = &pAdapterNext->GatewayList;
printf("GatewayList:/t %s/n",pAddrString->IpAddress.String);
pAddrString = pAddrString->Next;
while(pAddrString != NULL)
{
printf("/t/t %s/n",pAddrString->IpAddress.String);
pAddrString = pAddrString->Next;
}
if(pAdapterNext->DhcpEnabled != 0)
{
printf("DhcpServer:/t %s/n",pAdapterNext->DhcpServer.IpAddress.String);
pAddrString = pAdapterNext->DhcpServer.Next;
while(pAddrString != NULL)
{
printf("/t/t/t %s/n",pAddrString->IpAddress);
pAddrString = pAddrString->Next;
}
}
if(pAdapterNext->HaveWins != 0)
{
printf("PrimaryWinsSvr: %s/n",pAdapterNext->PrimaryWinsServer);
printf("SecondaryWinsSvr: %s/n",pAdapterNext->SecondaryWinsServer);
}
printf("LeaseObtained:/t %s",asctime(gmtime(&pAdapterNext->LeaseObtained)));
printf("LeaseExpires:/t %s/n",asctime(gmtime(&pAdapterNext->LeaseExpires)));
IfRow.dwIndex = dwIndex;
if((dwResult = GetIfEntry(&IfRow)) != NO_ERROR)
{
printf("GetIfEntry Error: %d/n",dwResult);
break;
}
printf("MTU:/t/t %d/n",IfRow.dwMtu);
printf("Speed:/t/t %d Kbps/n",IfRow.dwSpeed/1000);
printf("OperStatus:/t ");
switch(IfRow.dwOperStatus)
{
case MIB_IF_OPER_STATUS_NON_OPERATIONAL:
printf("LAN Adapter Disabled/n");
break;
case MIB_IF_OPER_STATUS_UNREACHABLE:
printf("WAN Adapter Disconnected/n");
break;
case MIB_IF_OPER_STATUS_DISCONNECTED:
printf("LAN Adapters Disconnected or WAN Adapters no Carrier/n");
break;
case MIB_IF_OPER_STATUS_CONNECTING:
printf("WAN Adapter Connecting/n");
break;
case MIB_IF_OPER_STATUS_CONNECTED:
printf("WAN Adapter Connected/n");
break;
case MIB_IF_OPER_STATUS_OPERATIONAL:
printf("LAN Adapter Default Status/n");
break;
default:
printf("/n");
break;
}
printf("Unknown Protocol: %d/n/n",IfRow.dwInUnknownProtos);
printf("/t%12s%12s%10s/t%s/n","Unicast","NUnicast","Error","Bytes");
printf("%s/t%12d%12d%10d/t%d/n","Send:",IfRow.dwOutUcastPkts,IfRow.dwOutNUcastPkts,IfRow.dwOutErrors,IfRow.dwOutOctets);
printf("%s%12d%12d%10d/t%d/n","Receive:",IfRow.dwInUcastPkts,IfRow.dwInNUcastPkts,IfRow.dwInErrors,IfRow.dwInOctets);
printf("%s/t%12d%12d%10d/t%d/n","Total:",
IfRow.dwInUcastPkts + IfRow.dwOutUcastPkts,
IfRow.dwInNUcastPkts + IfRow.dwOutNUcastPkts,
IfRow.dwInErrors + IfRow.dwOutErrors,
IfRow.dwInOctets + IfRow.dwOutOctets);
pAdapterNext = pAdapterNext->Next;
}
return TRUE;
}
求可以统计网络流量的VC代码,就象是金山网镖下面的那样相关推荐
- Linux中一行命令查看网卡流量、统计网络流量的各种实现方法
Linux中一行命令查看网卡流量.统计网络流量的各种实现方法. 方法一.nload工具 源码包路径: wget http://heanet.dl.sourceforge.net/project/nlo ...
- Android统计网络流量
统计网络流量,可用ActivityManager或PackageManager获取各个应用的uid,然后再用TrafficStats获取.示例如下: private void printTraffic ...
- 移动端测试 APP启动性能分析 WebView性能分析 H5性能分析 卡顿分析 帧分析 CPU统计 网络流量分析 耗电量指标 弱网测试 健壮性测试 兼容性测试 Amdahl
Android官网使用指南性能:https://developer.android.com/topic/performance 一.APP启动性能分析 APP的启动过程 调用起APP.创建一个空白窗口 ...
- snmp 统计网络流量
最近做个项目有关于SNMP的东西, 一个简单的用net-snmp获取交换机端口流量的问题,在GOOOGLE了半天后,才明天是怎么回事. 一开始以为交换机里会直接有个表示某个端口流量的MIB值,直接调用 ...
- ifstat网络流量监控之/proc/net/dev文件
之前介绍过ifstat获取网络流量监控的代码ifstat源码阅读,ifstat获取数据是读取的/proc/net/dev,但是/proc/net/dev文件里面究竟是什么内容,打开发现一团乱麻. In ...
- php怎么统计流量,PHP学习笔记:php网络流量统计系统
PHP学习笔记:php网络流量统计系统 说明:代码来源<PHP和MySQL Web应用开发>一书,还有就是代码有些是经过修改的,经过我的测验全部都可以用. 这里面ip地址显示的正常的,我电 ...
- jsch连接mysql_求用jsch网络工具包通过ssh连接远程oracle数据库并发送sql操作语句(数据库在unix上)java代码例子...
求用jsch网络工具包通过ssh连接远程oracle数据库(数据库在unix上)java代码例子:为何jsch发送:sqlplususer/pwd@service此命令,却没有结果返回啊.下面是代码: ...
- 网络流量统计using ADB
/proc/net/xt_qtaguid/stats 基本覆盖目前所有机型且统计流量全面 adb shell cat /proc/net/xt_qtaguid/stats | grep (uid#) ...
- 网络空间安全 恶意流量和恶意代码 结合Wireshark初步分析(一)
网络空间安全 恶意流量和恶意代码 学习入门(一) 说明: 希望通过使用 Wireshark 分析数据包,来更好理解网络恶意流量和恶意代码的作用流程和原理,同时也分享给大家. 一.概念介绍 PCAP 是 ...
最新文章
- 【每日一算法】合并两个有序数组
- 2018年4月22日笔记
- 从零开始学习Kafka
- 具体解释VB中连接access数据库的几种方法
- python棋盘格_干货必看 | Python的turtle库之经典棋盘格
- ant构建项目迁移到gradle_Gradle这么弱还跑来面腾讯?
- echart实现3d地图_3D飞线效果——让线“飞”起来的秘密
- 全局事件总线 (GlobalEventBus)
- 广告系统中的Exploitation and Exploration(一)
- 【案例】做一个电话簿(二)
- A3的PDF试卷怎么对半拆分成A4打印?
- linux中rpm -q命令,Linux中的RPM
- java 多线程高级,java 多线程高级(传统多线程)
- 编写脚本程序程序,将当前目录下所有的.txt文件更名为.doc文件。
- UIImageView绘制圆形图片
- Fatal error: Cannot use 'Object' as class name as it is reserved in xxx/Object.php on line 77
- 少侠1216资源共享
- go配置sublime text时使用MarGo报错及解决方法
- F2FS源码分析-1.6 [F2FS 元数据布局部分] Segment Summary Area-SSA结构
- openssl给内网IP生成ca证书(ssl证书)