事情的起因

在bupt每个月有20G免费流量,这个流量是上下行的总和,就是说你上传东西的流量也是计算在内的。超过20G的话就需要够买,1块钱1G。

刚开始并不知道上数据行也要计算流量,每个月总是前几天就把20G用光了。就想着有这么一个软件,可以监听下流量,找了半天没有找到太好用的,主要是没有说一个可以断网的功能。因为我并不需要去分析这些数据,只要能有一个用多少时间,或是用够多少流量之后,有一个提示和自动断掉外网的功能就行。

做这个小工具是用QT做的。想起来做点想起来做点,差不多花了一个学期。之后也并没有用上,主要是实验室有网。平时在宿舍也够用了。

所有代码,文档,工具,下载地址 http://download.csdn.net/detail/liuzhuchen/9802083
最后的程序**工程目录**snifferFrom

第一个问题,把数据抓上来

工程目录 snifferWinpcap

总要有一个把数据抓下来才能统计流量,没有太多犹豫,直接使用winpcap库。虽然听说windows在流量统计这方面有一个使用更方便的接口。但是可能因为以前一直做linux的关系,十分不喜欢使用windows开发。

当然我们只需要库就可以了。
WpdPack库 下载地址 http://download.csdn.net/detail/liuzhuchen/9802056
winpcap 中文技术文档 下载地址 http://download.csdn.net/detail/liuzhuchen/9802055

看着文档的示例,写了一个能抓包snifferWinpcap的小测试,因为抓包时并不需要界面就没写。主要是把库添加到工程中就可以。
不用把这个库添加到全局配置中。直接添加到当前项目工程中就可以。
两种方法:
一、在pro文件中直接写

LIBS += -L$$PWD/../WpdPack/Lib/ -lwpcap
LIBS += -L$$PWD/../WpdPack/Lib/ -lPacket
INCLUDEPATH += $$PWD/../WpdPack/Include
DEPENDPATH += $$PWD/../WpdPack/Lib

二、如下图在项目上右击选择添加库

第二个问题,写个简单的界面

工程目录 snifferFrom
效果可以看 snifferFrom ,这个也是最后的工程代码
1、可选网卡
2、可以过滤IP
3、有几个可选提示或是断网条件
4、可以开机启动,(这个可以用windows自带的,没怎么弄)
5、因为学校断网就是一个http get请求。有一个自定义的网址

第三个问题,区别上下行流量

获取本地信息工程目录 snifferTest\snifferLocalInfo

这个原来想的比较复杂。最后想想,校园网内IPv6不会花流量。只要知道当前选择的网卡IP或是MAC地址就可以了。

第四个问题,配置问题

conf**工程目录** conf
sqlite**工程目录** snifferTest\sqlittest2

有两个选择,一个使用文件,二个使用数据库
conf 是原来想着是使用key:value的配置文件,使用C写的,想着修改比较麻烦。就使用数据库了,非常经典的sqllite ,也是QT默认直接支持的。

目标是在程序重新启动之后不用重新配置。

第五个问题,程序最小化到托盘,像QQ最小化一样

工程目录 snifferTest\tuopanTest

第六个问题,程序主动弹出提示框

工程目录 snifferTest\hintTest

在程序最小化时,主动弹出提示框,计时时间到后主动关闭。
还有一个就是在弹出时,是不可以使用小工具的主窗体。只能看这提示,要么手动关了,要么等待自己关闭。

第七个问题,定时器


工程目录 snifferTest\timerTest

定时器,大概有三四种使用方式。

在这个小工具中有两个主要的工作,
一、在第六问题中使用,计时时间到后主动关闭
二、在统计流量时使用

第八个问题,日志问题

工程目录 snifferTest\snifferLog

QT自带的日志挺好用的,就是不能多线程。反正也没多大的东西,一个就一个吧。

第九个问题,断网请求(HTTP)

工程目录 snifferTest\snifferHTTPrequest

第十个问题,线程使用

工程目录 snifferTest\snifferThreadTest

主要是在有界面的程序中,主界面就是一个线程,其他程序都是通过主程序来启动的,现在问题是,只要开始抓包之后,就有两个一起跑的线程了。所以需要给抓包开一个线程。

第十一个问题,程序生成依赖关系

windeployqt 程序名

把所有有关的库和文件复制到当前目录下,步骤:

1、从开始菜单打开 《Qt 命令行》,
2、进入到要生成依赖的目录下,输入命令 :cd /d D:\hellomw
3、然后使用 windeployqt 工具命令: windeployqt hellomw.exe

第十二个问题,生成exe安装文件

我使用的是SmartInstallMaker,十分简单,

小工具程序思路

数据类FlowCont

抓包部分(线程) :抓到数据把大小写入FlowCont
统计部分(定时器):每秒对FlowCont进行统计和条件判断,如果超过阀值,调用提示部分
提示部分(定时器,):
界面部分(人机交互):启动,停止 抓包部分 工作,并把启动时的配置更新到数据库中。
配置部分(配置读取,保存):

关于bupt校内上网流量监听小工具笔记相关推荐

  1. Tkinter键盘敲击监听小工具

    Tkinter键盘敲击监听小工具 1. 用到的库 tkinter # Python自带的GUI库 pynput # 具有键盘监听和控制功能的库 2. 代码 import threading impor ...

  2. App逆向案例 X嘟牛 - Frida监听 WT-JS工具还原(一)

    App逆向案例 X嘟牛 - Frida监听 & WT-JS工具还原(一) 提示:文章仅供参考,禁止用于非法途径: 文章目录 App逆向案例 X嘟牛 - Frida监听 & WT-JS工 ...

  3. 小程序监听android返回键,如何监听小程序返回按钮事件?

    写在前面 为了能及时的将自己踩到的前端坑(包括ionic,angular,react,ReactNative,小程序,APICloud)分享给大家,以后会逐渐将文章转移到微信公众号:前端e家(fron ...

  4. 如何监听小程序返回按钮事件?

    2020-06-09更新 //--------------------------2020-06-09更新-------------------开始-------------------------- ...

  5. oracle未获得监听器,无监听文件listener.ora的动态监听小例试验

    在数据库服务器上,监听文件的位置是:$ORACLE_HOME/network/admin/listener.ora 试验如下: 移动db服务器上的监听文件,如下命令: [oracle@ENMOEDU ...

  6. oracle rac添加监听,【学习笔记】Oracle 10G RAC增加节点时手动注册监听服务的案例步骤...

    [学习笔记]Oracle 10G RAC增加节点时手动注册监听服务的案例步骤 时间:2016-10-22 22:53   来源:Oracle研究中心   作者:HTZ   点击: 次 天萃荷净 Ora ...

  7. .NET Core开发实战(第12课:配置变更监听)--学习笔记

    12 | 配置变更监听:配置热更新能力的核心 这一节讲解如何使用代码来监视配置变化并做出一些动作 当我们需要追踪配置发生的变化,可以在变化发生时执行一些特定的操作 配置主要提供了一个 GetReloa ...

  8. oracle监听管理工具,oracle监听器管理

    一.什么是注册? 注册就是将数据库作为一个服务注册到监听程序.客户端不需要知道数据库名和实例名,只需要知道该数据库对外提供的服务名就可以申请连接到数据库.这个服务名可能与实例名一样,也有可能不一样. ...

  9. 基于OkHttp 、Retrofit 、Volley 、RxJava、Novate多种网络框架整合的快速项目开发框架,一行代码实现Ftp文件上传、文件下载、文件删除和进度监听的工具类的使用

    基于OkHttp .Retrofit .Volley .RxJava.Novate多种网络框架整合的快速项目开发框架,Ftp文件上传.文件下载的工具类的使用. 依赖于Ftp的jar包,对上传.下载.删 ...

最新文章

  1. 聊聊flink的InternalTimeServiceManager
  2. 常见宽带路由器配置及口令清除技巧
  3. Javascript JSON格式
  4. Django update用法
  5. centos mysql proxy_在Centos 5.2下安装最新的MySQL Proxy
  6. 05 CardView的基本使用
  7. paip.VOB DVD视频的无损分割与截取
  8. Maven报错Please ensure you are using JDK 1.4 or above and not a JRE解决方法!
  9. python实现语音机器人
  10. 伍德里奇计量经济学导论pdf_伍德里奇 计量经济学导论 第三章第三节 2 OLS无偏定理...
  11. ps蒙版怎么用:你会用ps蒙版吗?【萧蕊冰】
  12. elementui 描述列表Descriptions组件宽度修改
  13. SPN线性密码分析【附code】
  14. android 字符串中截取,【安卓按键精灵】几种字符串提取的方法(源码)
  15. 云效安全那些事儿-Codeup代码智能安全检测服务
  16. 探索自助报表BI的现状和未来(文末送福利)
  17. 禾赛获上汽飞凡前装量产定点,飞凡全新车型将搭载AT128
  18. Java中得到GMT 时间(格林时间)
  19. 【C++】Heather银行对顾客排队等待的时间进行估测问题 《C++ Primer Plus》12.7 队列模拟 学习笔记
  20. jq实现注册页面表单校验

热门文章

  1. 微服务-数据库设计原则
  2. 《ArchSummit:时代的呐喊,技术人听得到》
  3. 传输层安全加密协议之Noise 协议(Noise Protocol Framework)
  4. windows10 CAD解析库libredwg安装记录
  5. 对于图片压缩的 三种方式
  6. WEB小厂电商项目测试技术指南1.0
  7. JS任意元素的任意值运动
  8. Linux移动文件夹下的多个文件到另一个文件夹
  9. 学计算机有什么用处400字,计算机日常使用注意些什么?作文400字_四年级作文400字-98作文网...
  10. 计算机科学与技术专业北上广,学计算机专业是不是只能在北上广工作?