网络流量在线分析系统的设计与实现
编译环境:visual studio2019,安装并配置winpcap和pthreads库函数
1 配置环境
1.1 安装vscode
参考微信公众号 软件安装管家。
1.2 安装MinGW-w64
下载地址:添加链接描述
安装参考博客:MinGW-w64安装配置全过程
第一步:安装
第二步:配置环境变量
输入命令gcc -v可以查看版本信息,如下图,
1.3 下载WinPcap
下载地址:添加链接描述
下载解压后的目录:
1.4 Winpcap环境配置
此配置方法针对 2019 Visual Studio。
以获取已连接的网络适配器列表为例,编写一个简单的Winpcap程序。
第一步:点击项目“属性”
第二步:包含目录 和 库目录 分别加入winpcap的include 和 lib/x64目录
winpcap的头文件路径:WpdPack\Include
winpcap的库文件路径:WpdPack\Lib\目录下:wpcap.lib, Packet.lib;如果是开发64位程序,则使用x64包中的相应库
第三步:附加依赖项中分别加入如下三个库文件
ws2_32.lib
wpcap.lib
Packet.lib
第四步:编写获取网络适配器列表的代码main.cpp
参考代码:参考代码
大致过程:
首先通过pcap_findalldevs_ex获取网络适配器列表
网络适配器列表信息保持在一个pcap_if_t指针中,它是一个经典的C式链表结构,可以通过这个指针遍历所有的网络适配器
最后,调用pcap_freealldevs释放资源
运行结果:
【补充:网络适配器】
网络适配器就是网卡,在“设备管理器”中可以查看本机电脑的网络适配器列表,如下图,
1.5 pthreads环境配置
下载地址:pthreads-w32-2-9-1
配置过程:
下载pthreads-w32-2-9-1-release.zip文件,解压生成三个文件夹 Pre-built.2、pthreads.2、QueueUserAPCEx
项目属性 — vc++目录 — 包含目录 — 添加 xxx\pthreads-w32-2-9-1-release\Pre-built.2\include
项目属性 — vc++目录 — 库目录 — 添加xxx\pthreads-w32-2-9-1-release\Pre-built.2\lib\x64
项目属性 — 链接器 — 输入 — 附加依赖项 — 添加pthreadVC2.lib
如果代码运行报错:找不到pthreadVC2.dll。解决方法:将pthreadVC2.dll拷贝到项目的源文件夹下,如
包含头文件pthread.h后,运行可能会提示错误 “1 error LNK2019: 无法解析的外部符号 __imp__pthread_create,该符号在函数 _main 中被引用 ” ,则需要在代码中加入#pragma comment(lib, "pthreadVC2.lib")
遇到错误“int pcap_findalldevs_ex(char *,pcap_rmtauth *,pcap_if_t **,char *)”: 无法将参数 1 从“const char [9]”转换为“char *”,依次点击项目->属性->C/C+±>语言->符合模式,将原来的“是”改为“否”即可。
参考博客:vs2019 c语言配置pthreads多线程
2 实验步骤
实验内容:
设计并实现一个网络流量的分析系统。该系统具有以下功能:
1、实时抓取指定时间间隔中的网络数据。
2、网络协议分析与显示,确认网络协议类型,抓取数据流量大小、方向。
3、将网络数据包聚合成数据流,将源IP、目的IP、源端口、目的端口及协议 等流量数据存储。
4、计算并显示固定时间间隔内网络连接(双向流)的统计量(如上行与下行的数据包数目,上行与下行的数据量大小等)。在这些统计数据的基础上分析不同网络应用的流量特征。
系统流程图:
项目目录结构:
3 运行结果
result.data文件内容:
vscode运行结果:
将traffic.data文件修改后缀名为traffic.pcap,并用wireshark打开,对比vscode流量分析截图,可看出两者捕获内容是一致的,如下图:
参考博客:讲解、源码
网络流量在线分析系统的设计与实现相关推荐
- 网络流量在线分析系统的设计与实现+winpcap+vscode+mingw
21.2.17更新:替换未渲染的plantuml流程图 前言 文章源地址:https://blog.csdn.net/pi31415926535x/article/details/107230805 ...
- 网络抓包与流量在线分析系统的设计与实现-基于libpcap在MacOS上实现 记录这愉快(DT)的一周
网络抓包与流量在线分析系统的设计与实现-基于libpcap在MacOS上实现 记录这愉快(DT)的一周 要求: 基于LINUX系统设计并实现一个网络流量的分析系统.该系统具有以下功能:(1)实时抓取网 ...
- php怎么统计流量,PHP学习笔记:php网络流量统计系统
PHP学习笔记:php网络流量统计系统 说明:代码来源<PHP和MySQL Web应用开发>一书,还有就是代码有些是经过修改的,经过我的测验全部都可以用. 这里面ip地址显示的正常的,我电 ...
- 聊天系统设计与实现服务器代码,网络聊天工具系统的设计与实现.doc
PAGE 综合课程设计报告 网络聊天工具系统的设计与实现 学生姓名: 指导教师: 所 在 系: 电 子 信 息 系 所学专业: 计算机科学与技术 年 级: PAGE 1 1 目 录 TOC \o &q ...
- 基于ASP.NET网站流量统计系统的设计与实现
在这个网络急速发展的时代,网站在日常生活中是必不可少的,网站所产生的付出回报率相对应的就显得尤为重要,一个强大.方便的网络流量统计管理系统能使网站的使用变得更加方便快捷.当前国内在这个方面的研究做的比 ...
- android流量监控软件设计与实现,基于android平台的流量监控系统的设计与实现
摘要: 为了解决流量超额使用,恶意流量吸费的非法插件以及软件恶意联网的问题,帮助用户安全放心使用手机,本文设计并实现了一款基于Android平台的流量监控系统. 本文以Android系统为平台,分别从 ...
- 安全网络身份认证系统的设计与实现
本文章源码地址:https://gitee.com/sukels/shirohttps://gitee.com/sukels/shiro 摘 要 随着互联网的飞速发展,Web应用的安全问题日益凸显. ...
- 基于jsp(java)网络教学平台系统的设计与实现
欢迎添加微信互相交流学习哦! 项目源码:https://gitee.com/oklongmm/biye2 摘 要 远程教育作为现代教育技术的形式,给教育思想与技术带来了革命性的变革,己经成为现代教育的 ...
- 基于jsp(java)网络教学平台系统的设计和开发(含源文件)
获取项目源文件,联系Q:1225467431,可指导毕设,课设 摘 要 远程教育作为现代教育技术的形式,给教育思想与技术带来了革命性的变革,己经成为现代教育的必然要求.远程教育要得以顺利.高效的实施, ...
- 【毕业设计】基于SSM的网络在线考试系统的设计与实现
文章目录 前言 1 课题描述 2 相关技术 3 系统需求分析 3.1 功能需求分析 3.1.1 学生端: 3.1.2 超级管理员端: 3.1.3 试题管理员端(老师): 4 系统设计框架 4.1 系统 ...
最新文章
- ng-template、ng-container、ng-content和ngTemplateOutlet、ngProjectAs傻傻分不清!他们究竟是干啥的???
- Spring定时任务的几种实现
- 2.Riesz定理及其应用
- Lesson 13.2 模型拟合度概念介绍与欠拟合模型的结构调整策略
- 图解ARP协议(四)代理ARP原理与实践(“善意的欺骗”)
- Oracle存储过程--案例
- matlab pca可视化,利用Matlab实现PCA demo展示
- 深入理解ES6 pdf
- mysql count 优化索引_如何通过使用索引在InnoDB上优化COUNT(*)性能
- 运算符sizeof_C程序通过使用sizeof()运算符对数组元素进行计数
- python菜单栏_pyqt5——菜单和工具栏
- 【jQuery】学习整理(一) 认识jQuery
- 干货 | 集成学习综述与代码实现
- 免费前端网站页面模板
- matlab常用命令整理
- Excel-VBA 快速上手(三、数组和字典)
- c语言程序图像抠图,Opencv使用鼠标任意形状的抠图
- 【进大厂必学】面完 10 多家大厂后,总结了这些太容易被考的算法
- 在出境通关中如何应用智能智慧护照阅读器技术呢
- 口红会染唇是什么意思_最强科普!口红、唇膏、唇釉、染唇液究竟区别在哪?...