编译环境: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流量分析截图,可看出两者捕获内容是一致的,如下图:

参考博客:讲解、源码

网络流量在线分析系统的设计与实现相关推荐

  1. 网络流量在线分析系统的设计与实现+winpcap+vscode+mingw

    21.2.17更新:替换未渲染的plantuml流程图 前言 文章源地址:https://blog.csdn.net/pi31415926535x/article/details/107230805 ...

  2. 网络抓包与流量在线分析系统的设计与实现-基于libpcap在MacOS上实现 记录这愉快(DT)的一周

    网络抓包与流量在线分析系统的设计与实现-基于libpcap在MacOS上实现 记录这愉快(DT)的一周 要求: 基于LINUX系统设计并实现一个网络流量的分析系统.该系统具有以下功能:(1)实时抓取网 ...

  3. php怎么统计流量,PHP学习笔记:php网络流量统计系统

    PHP学习笔记:php网络流量统计系统 说明:代码来源<PHP和MySQL Web应用开发>一书,还有就是代码有些是经过修改的,经过我的测验全部都可以用. 这里面ip地址显示的正常的,我电 ...

  4. 聊天系统设计与实现服务器代码,网络聊天工具系统的设计与实现.doc

    PAGE 综合课程设计报告 网络聊天工具系统的设计与实现 学生姓名: 指导教师: 所 在 系: 电 子 信 息 系 所学专业: 计算机科学与技术 年 级: PAGE 1 1 目 录 TOC \o &q ...

  5. 基于ASP.NET网站流量统计系统的设计与实现

    在这个网络急速发展的时代,网站在日常生活中是必不可少的,网站所产生的付出回报率相对应的就显得尤为重要,一个强大.方便的网络流量统计管理系统能使网站的使用变得更加方便快捷.当前国内在这个方面的研究做的比 ...

  6. android流量监控软件设计与实现,基于android平台的流量监控系统的设计与实现

    摘要: 为了解决流量超额使用,恶意流量吸费的非法插件以及软件恶意联网的问题,帮助用户安全放心使用手机,本文设计并实现了一款基于Android平台的流量监控系统. 本文以Android系统为平台,分别从 ...

  7. 安全网络身份认证系统的设计与实现

    本文章源码地址:https://gitee.com/sukels/shirohttps://gitee.com/sukels/shiro 摘  要 随着互联网的飞速发展,Web应用的安全问题日益凸显. ...

  8. 基于jsp(java)网络教学平台系统的设计与实现

    欢迎添加微信互相交流学习哦! 项目源码:https://gitee.com/oklongmm/biye2 摘 要 远程教育作为现代教育技术的形式,给教育思想与技术带来了革命性的变革,己经成为现代教育的 ...

  9. 基于jsp(java)网络教学平台系统的设计和开发(含源文件)

    获取项目源文件,联系Q:1225467431,可指导毕设,课设 摘 要 远程教育作为现代教育技术的形式,给教育思想与技术带来了革命性的变革,己经成为现代教育的必然要求.远程教育要得以顺利.高效的实施, ...

  10. 【毕业设计】基于SSM的网络在线考试系统的设计与实现

    文章目录 前言 1 课题描述 2 相关技术 3 系统需求分析 3.1 功能需求分析 3.1.1 学生端: 3.1.2 超级管理员端: 3.1.3 试题管理员端(老师): 4 系统设计框架 4.1 系统 ...

最新文章

  1. ng-template、ng-container、ng-content和ngTemplateOutlet、ngProjectAs傻傻分不清!他们究竟是干啥的???
  2. Spring定时任务的几种实现
  3. 2.Riesz定理及其应用
  4. Lesson 13.2 模型拟合度概念介绍与欠拟合模型的结构调整策略
  5. 图解ARP协议(四)代理ARP原理与实践(“善意的欺骗”)
  6. Oracle存储过程--案例
  7. matlab pca可视化,利用Matlab实现PCA demo展示
  8. 深入理解ES6 pdf
  9. mysql count 优化索引_如何通过使用索引在InnoDB上优化COUNT(*)性能
  10. 运算符sizeof_C程序通过使用sizeof()运算符对数组元素进行计数
  11. python菜单栏_pyqt5——菜单和工具栏
  12. 【jQuery】学习整理(一) 认识jQuery
  13. 干货 | 集成学习综述与代码实现
  14. 免费前端网站页面模板
  15. matlab常用命令整理
  16. Excel-VBA 快速上手(三、数组和字典)
  17. c语言程序图像抠图,Opencv使用鼠标任意形状的抠图
  18. 【进大厂必学】面完 10 多家大厂后,总结了这些太容易被考的算法
  19. 在出境通关中如何应用智能智慧护照阅读器技术呢
  20. 口红会染唇是什么意思_最强科普!口红、唇膏、唇釉、染唇液究竟区别在哪?...

热门文章

  1. 中文维基百科数据处理
  2. 年终盘点:2010年半导体产业十大进展
  3. ARM到底是一家什么样的公司?
  4. 别再用手机管家了!华为手机删除这几个文件夹,能瞬间释放大量内存
  5. Python-OpenCV4中的阈值二值化函数threshold(),要特别注意其返回值有两个
  6. 433MHz,2.4GHz,GPRS,NB-IOT各有哪些特点?
  7. 多媒体架构---display介绍
  8. 防火墙阻止软件联网方法
  9. TMS570-3-RTI中断
  10. WIN7护眼颜色设置