网络流量监控(局域网)
一个轻量级的网络流量监控程序,只能在局域网中使用。
主要用到GetIfTable(),和GetIfEntry() 两个API。界面用QT做,可以隐藏在系统托盘中。
截图
核心代码如下
void NetFlow::getFlow() { // 记录上一次函数调用时的总流量和时间,在后面计算流量速度的时候用到 preInFlow = inFlow; preOutFlow = outFlow; preTime = currTime; inFlow = 0.0f; outFlow = 0.0f; currTime = GetTickCount(); int i; pIfTable = (MIB_IFTABLE *) MALLOC(sizeof (MIB_IFTABLE)); if (pIfTable == NULL) { printf("Error allocating memory needed to call GetIfTable/n"); return; } dwSize = sizeof (MIB_IFTABLE); if (GetIfTable(pIfTable, &dwSize, 0) == ERROR_INSUFFICIENT_BUFFER) { FREE(pIfTable); pIfTable = (MIB_IFTABLE *) MALLOC(dwSize); if (pIfTable == NULL) { printf("Error allocating memory/n"); return; } } if ((dwRetVal = GetIfTable(pIfTable, &dwSize, 0)) == NO_ERROR) { if (pIfTable->dwNumEntries > 0) { pIfRow = (MIB_IFROW *) MALLOC(sizeof (MIB_IFROW)); if (pIfRow == NULL) { printf("Error allocating memory/n"); if (pIfTable != NULL) { FREE(pIfTable); pIfTable = NULL; } return; } printf("/tNum Entries: %ld/n/n", pIfTable->dwNumEntries); // 枚举所有接口 for (i = 0; i < (int) pIfTable->dwNumEntries; i++) { pIfRow->dwIndex = pIfTable->table[i].dwIndex; if ((dwRetVal = GetIfEntry(pIfRow)) == NO_ERROR) { // 排除环回接口的流量 if(pIfRow->dwType != MIB_IF_TYPE_LOOPBACK) { inFlow += pIfRow->dwInOctets; outFlow += pIfRow->dwOutOctets; } } else { printf("GetIfEntry failed for index %d with error: %ld/n", i, dwRetVal); } } } else { printf("/tGetIfTable failed with error: %ld/n", dwRetVal); } } FREE(pIfTable); FREE(pIfRow); // 计算流量,速度=总流量 / 所经过的时间 float inSpeed = (inFlow - preInFlow) / ((float)(currTime - preTime) / 1000.0f); float outSpeed = (outFlow - preOutFlow) / ((float)(currTime - preTime) / 1000.0f); char buffer[100]; sprintf(buffer, "Download: %.2fk/s Upload: %.2fk/s", inSpeed / 1000.0f, outSpeed / 1000.0f); bodyEdit->setText(buffer); trayIcon->setToolTip(QString(buffer)); }
下载地址:http://download.csdn.net/source/3040966
网络流量监控(局域网)相关推荐
- 局域网网络流量监控_Linux网络安全运维:网络流量监控与分析工具Ntop和Ntopng
一次性付费进群,长期免费索取教程,没有付费教程. 进微信群回复公众号:微信群:QQ群:460500587 教程列表 见微信公众号底部菜单 | 本文底部有推荐书籍 微信公众号:计算机与网络安全 I ...
- 局域网网络流量监控_【干货】Linux网络安全运维:网络流量监控与分析工具Ntop和Ntopng...
本文授权转载自微信公众号:计算机与网络安全,转载请联系授权.对于单台服务器网络故障的排查,iftop工具可以轻松实现,但是在监控一个庞大的服务器网络,并且要分析每台主机以及端口的网络状态时,iftop ...
- linux系统CPU,内存,磁盘,网络流量监控脚本
前序 1, #cat /proc/stat/ 信息包含了所有CPU活动的信息,该文件中的所有值都是从系统启动开始累积到当前时刻 2, #vmstat –s 或者 #vmstat 虚拟内存统 ...
- mysql hostname uroot_CACTI网络流量监控
CACTI网络流量监控 (一)准备工作 1.什么是cacti和rrdtool Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具.是通过 snmpget来获 ...
- Linux网络流量监控Iftop安装
2019独角兽企业重金招聘Python工程师标准>>> Linux网络流量监控Iftop主要用来显示本机网络流量情况及各相互通信的流量集合,如单独同那台机器间的流量大小,非常适合于代 ...
- nagios监控告警之网络流量监控(附pnp模板)
步骤: 1.下载网络流量监控脚本: https://raw.githubusercontent.com/June-Wang/NagiosPlugins/master/check_net_traffic ...
- 基于linux网络流量监控与分析软件的设计与实现shell,Shell图形化监控网络流量
网络流量的监控工具有很多,如:Mrtg.Cacti.Zabbix等等,他们都有着各自的特点,不同的侧重,只为适合不同的应用场景的各种特殊需求.除了网络流量监控工具以外,还有Nagios这样的监控主机状 ...
- ifstat网络流量监控之/proc/net/dev文件
之前介绍过ifstat获取网络流量监控的代码ifstat源码阅读,ifstat获取数据是读取的/proc/net/dev,但是/proc/net/dev文件里面究竟是什么内容,打开发现一团乱麻. In ...
- 网络流量监控软件——MRTG(Multi Router Traffic Grapher)
一名真正合格的网管所做的工作不应该仅仅局限在服务器故障发生后,亡羊补牢的工作虽然不算迟,但也会造成一定程度的损失.那么如何有效的监视服务器的状态,在第一时间发现服务器故障及异常甚至在没出现问题前进行预 ...
- NetWorker Pro for mac(网络流量监控软件)
NetWorker Mac版是一款轻量级的网络工具,NetWorker Mac版可以让你在菜单栏上显示当前的网络上传下载速度,你可以在速度和流量两种模式之间切换,你也可以选择不同的网络模式来进行监测. ...
最新文章
- CVPR2020论文解读:3D Object Detection三维目标检测
- pandas索引复合索引dataframe数据、索引其中一个水平(level)的所有数据行(index all rows in a level)
- R语言 赋值符号 的区别
- Apache ZooKeeper - ZK的内存数据 + 持久化事务日志 + 数据快照 初探
- MIT自然语言处理第一讲:简介和概述(第一部分)
- websocket规范 RFC6455 中文版
- Twisted 介绍 及TCP广播系统实例
- / vs /*
- python三大结构、顺序结构_Python学习笔记3——三大结构:顺序,分支,循环3
- [html] 你知道短链接的生成原理吗?
- android studio n3710,英特尔奔腾N3710性能跑分和评测 | ZMMOO
- Redis(二):Redis的安装及配置(2)---设置启动信息
- 第一周例行报告(补)
- 基于Verilog的简易计算器
- c语言 word转pdf,批量Word转PDF之捷径
- vivado simulation仿真(38译码器实现)
- 漫画:什么是加密算法?
- 使用john破解密码
- 线性代数(1)—— 行列式
- 微信小游戏接入遇到的坑