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

2023-11-20

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

参考博客:讲解源码

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • windows服务器被当矿机的问题处理实战-conhosts.exe

    windows服务器被当矿机的问题处理实战 conhosts exe 服务器最近比较卡 调开任务管理器查看 CPU占用偏高 发现进程 conhosts exe 占用CPU 75 通过pid查询 该进程通过syn sent向陌生IP 163
  • STM32G30C8T6hal库串口非固定长度

    1 由于从标准库转到hal库 还是特别不适应 串口测试遇到了一下问题 记录一下 2 hal库串口的配置不再赘述 hal库串口接收完毕可调用回调函数 接收的字节为固定长度才会回调 感觉非常麻烦 而且要重新开启接收中断 特别不适用于项目 想按照
  • 最新网络工程毕设选题题目推荐

    文章目录 0 简介 1 如何选题 2 最新网络工程选题 2 1 Java web SSM 系统 2 2 大数据方向 2 3 人工智能方向 2 4 其他方向 4 最后 0 简介 学长搜集分享最新的网络工程专业毕设毕设选题 难度适中 适合作为毕
  • python爬虫,多线程与生产者消费者模式

    使用队列完成生产者消费者模式 使用类创建多线程提高爬虫速度 https sc chinaz com tupian index html https sc chinaz com tupian index 2 html https sc chi
  • elasticsearch 安装教程

    一 jdk安装 es要求jdk版本在1 8以上 所以先安装jdk1 8 安装步骤 1 安装完Centos6 5的Base Server版会默认安装OpenJDK 首先需要删除OpenJDK 命令 rpm qa grep java 显示如下
  • 头条员工自爆:拿遍BAT和TMD的offer,面试过于NB!

    最近看到一位今日头条员工在脉脉发帖称 最近两次找工作 BAT TMD的offer几乎拿了个遍 但一般一家只能待两年 原因是面试的时候表现过于NB 导致下家对自己期望值过高 实际工作中面临的阻力很大的时候就会退缩 自己的能力项可能是面试 每次
  • Android 网络管理

    系统中对网络的判断和选在是在Connectivityervice这个服务中来处理的 在系统启动的时候会启动这个系统服务 系统启动完毕后 ConnectivityService在系统启动的时候就启动了 在android内部 用framewor
  • 如何学好C语言的数据结构与算法?

    C语言的数据结构与算法 难就难在链表 学会了链表 可能后面就一点都不难了 书籍推荐 数据结构与算法分析 C语言描述版 要深入学习的话可以选择这本书 因为针对链表的讲解是比较详细的 所以可以很快理解链表 跟着书上一点点实现基本操作 增删改查
  • Vue中的过滤器

    过滤器 定义 对要显示的数据进行特定格式化后再显示 适用于一些简单逻辑的处理 语法 1 注册过滤器 Vue filter name callback 全局 或 new Vue filters 局部 2 使用过滤器 xxx 过滤器名 或 v
  • 动态修改日志级别,太有用了!

    首发于公众号 BiggerBoy 背景 我们在系统中一般都会打印一些日志 并且在开发 测试 生产各个环境中的日志级别可能不一样 在开发过程中为了方便调试打印了很多debug日志 但是生产环境为了性能 为了节约存储资源 我们会将日志级别设置为
  • linux shell进行数值计算

    出于项目需要 需要用脚本执行计算 最简单的方法1 这里写算式 可以写变量 Desktop cat test sh a 102 c a 123 echo a a echo a 123 c Desktop test sh a 102 a 123
  • 【软件测试】用例篇

    一 什么是测试用例 测试用例 向被测试系统发起的一组集合 这组集合包含测试数据 测试步骤 测试平台 预期结果 二 为什么在测试前要设计测试用例 三 基于需求设计测试用例 3 1测试是我们测试人员进行测试的依据 3 2测试人员首先要分析需求
  • A-LOAM总结-(前端+后端)算法流程分析

    文章目录 scanRegistration cpp 雷达信息预处理进程 laserOdometry cpp laserMapping cpp A LOAM算法流程 主要运行以下3个cpp文件 流程框图在文末 scanRegistration
  • (C语言)输出数组的最大值及其对应下标的最小值

    本题源自pintia cn 题目要求 代码 测试结果图 PTA测试结果 题目要求 本题要求编写程序 找出给定的n个数中的最大值及其对应的最小下标 下标从0开始 输入格式 输入在第一行中给出一个正整数n 1
  • 为什么学完Python后的薪资这么高?

    人工智能和大数据概念的兴起 带动了Python的快速增长 Python语言逻辑简洁 入门简单 生态丰富 几乎成为几个新兴领域的不二选择 而除了这两个领域 Python还有更多的适用领域 爬虫 web 自动化运维等领域都非常适合Python发
  • 详细的Python Flask的操作

    本篇文章是Python Flask 建站框架入门课程 编程实战微课 w3cschool微课的学习笔记 根据课程整理而来 本人使用版本如下 Python 3 10 0 Flask 2 2 2 简介 Flask是一个轻量级的可定制的web框架
  • 推荐|5种商业AI产品的技术架构设计!

    来源 达观数据 概要 今天我们就特别推荐达观数据的几个商业产品设计技术架构 希望对于广大技术有帮助 做任何一个商业产品设计 技术架构都是首先要考虑的 特别是面对海量数据的AI商业项目更是如此 今天我们就特别推荐达观数据的几个商业产品设计技术
  • Vue中key

    相信很多小伙伴跟我一样在使用v for的时候对key值的存在和必要性有疑问 通过ESlint进行代码检查的时候不加上key还会报错 想知道key为什么存在可以先想想key为什么产生 会不会是尤雨溪灵光一闪就给Vue添加上了key 也有可能
  • 大数据简介

    预备篇 目录 知识 大数据简介 计算机单位 大数据的五个 v Hadoop Hadoop概述 Hadoop的历史 Hadoop三大发行版本 1 Apache Hadoop 2 Cloudera Hadoop 3 Hortonworks Ha
  • 野外偷拍_野外紧急设计

    关于本系列 本系列文章旨在为人们经常讨论但难以捉摸的软件体系结构和设计概念提供新的视角 通过具体的示例 尼尔 福特为您提供了进化架构和紧急设计的敏捷实践的坚实基础 通过将重要的架构和设计决策推迟到最后一个负责任的时刻 可以防止不必要的复杂性

随机推荐

  • 武汉大学空间智能化处理复习

    空间数据处理智能化的重要性 提高地理信息处理的效率 减轻人在地理信息处理中的劳动量 使一般的地理信息用户也能让专家一样解决问题 大型的空间决策服务需要归纳 分析多种方案 智能化处理方法的来源 常常来自于人工智能学科的研究成果 如 知识工程
  • CTK框架介绍和环境搭建

    CTK框架介绍和环境搭建 概述 本人第一次接触CTK的时候是看的一去 二三里大佬的博客 CTK框架实际应用比较可靠 但网上资料很少 官网提供的API链接也已经无法打开了 目前还没有找到很好的官方的使用介绍 网上目前找到的CTK的介绍或者是博
  • Sklearn笔记--逻辑回归调参指南

    1 逻辑回归概述 p y
  • 建站记录2-CSS文件未加载-已解决-Resource interpreted as Stylesheet but transferred with MIME type text/plain

    网站链接 http 139 199 169 122 在本地加载正常 上传到服务器之后 网页没有样式 10 最终正确方案 重装了服务器系统 在别人的服务器上传同样的文件 发现正确 问题锁定在服务器设置中 找研究后端的马同学检查配置 发现是少了
  • python---collections模块

    目录 namedtuple 具名元组 deque 双端队列 OrderedDict 有序字典 defaultdict 默认值字典 Counter 计数 在内置数据类型 dict list set tuple 的基础上 collections
  • 差分数组及应用

    差分数组是啥 我也不是很清楚 大概就是一个数组吧 b战上有很多讲解的视频 我写下我学到的 差分数组就是 原本有个数组 然后你要修改某个区间的数值 正常人会想到遍历去修改 这是没错的 但吃力不讨好 用差分数组可以很快搞定 例如 有一个全为0的
  • CrimeKgAssitant-master的案件分类模块思路整理(多标签分类模型)

    根据liuhuanyong模型改动 尝试推广到其它领域 原始模型连接 GitHub liuhuanyong CrimeKgAssitant Crime assistant including crime type prediction an
  • TOOLS_Pandas根据日期列进行分组统计及绘图的使用示例

    Pandas根据日期列进行分组统计及绘图的使用示例 导入所需要的库 coding utf 8 from logging import warning import os sys import datetime import numpy as
  • linux端口被占用,netstat查看无进程号,端口状态一直停留在FIN_WAIT1以及CLOSE_WAIT状态

    环境信息 CentOS 6 5 现象 同事启动程序发现端口被占用 netstat查看之后发现如下现象 发现端口处于FIN WAIT1状态以及CLOSE WAIT状态 无法释放 问题分析 FIN WAIT1以及CLOSE WAIT状态的原理以
  • 如何通过电脑向ipad传电影视频(不用越狱)

    前言 为了能在ipad上看电脑上已下载的电影 我可是试了各种方法 心好累 还好终于解决了 不得不说 网上没一个靠谱的答案 方法一 如果电影本身的格式是 mp4 mov m4a格式 通过官方的itunes软件 直接导入媒体库 然后在ipad上
  • 聚宽源码17

    原文策略源码如下 导入函数库 from jqdata import import talib from math import isnan def initialize context 设置参数 set parameter context
  • React实现关键字高亮

    先看效果 实现很简单通过以下这个函数 highLight text keyword gt return text split keyword flatMap str gt span keyword span str slice 1 展示某段
  • SQLite3 获取最小可用ID,ID无需包含1

    SQLite3 获取最小可用ID ID无需包含1 一 语法 二 解析 1 判断最小ID是否为1 2 判断最小ID递增后是否存在 3 范围限定 三 总结 一 语法 获取1 到 500 范围间的最小可用ID select CASE WHEN s
  • Visual Studio 2017无法登录问题解决

    前两天登录VS2017的时候遇到无法登录问题 截图如下 期间试了各种方法 更新重启 添加一系列站点至信任域等等 还是没有效果 同时突然想起来自己的IE浏览器一直无法正常上网 不确定和VS无法登录是否有一定的联系 抱着试试看的心态上网搜索了一
  • IGWO-SVM:改良的灰狼优化算法改进支持向量机。 采用三种改进思路:两种Logistic和Tent混沌映射和采用DIH策略

    IGWO SVM 改良的灰狼优化算法改进支持向量机 采用三种改进思路 两种Logistic和Tent混沌映射和采用DIH策略 采用基于DIH维度学习的狩猎搜索策略为每只狼构建邻域 增强局部和全局搜索能力 收敛速度比GWO更快 适用于pape
  • 工控安全PLC固件逆向三

    之前我们详细分析了bootram和Vxworks的基本启动流程 这篇文章中我们把视线转到plc的网络部分 同时来复现我们第一个 第二个工控安全漏洞 一 VxWorks的网络设备驱动 一般我们说有三种设备 块设备 字符设备 网络设备 但是考虑
  • 【封装】实体类(entity)

    实体类entity 一 ORM 1 1 ORM 实体类 entity 零散数据的载体 1 1 1 ORM应用 一 ORM ORM Object Relational Mapping 从数据库查询到的结果集 ResultSet 在进行遍历时
  • Error while parsing UI hierarchy XML file: Invalid ui automator hierarchy file. Error while parsing

    官方的工具就这吊样各种报错 不如使用二次开发的工具 使用 https github com alibaba web editor 替代
  • el-select实现懒加载

    先看一个线上的演示示例 https code juejin cn pen 7273352811440504889 背景 我们在实际开发中经常遇到这样的需求 el select实现懒加载 用通俗的话说 为了增加响应速度 就是初始下拉只展示50
  • 网络流量在线分析系统的设计与实现

    编译环境 visual studio2019 安装并配置winpcap和pthreads库函数 1 配置环境 1 1 安装vscode 参考微信公众号 软件安装管家 1 2 安装MinGW w64 下载地址 添加链接描述 安装参考博客 Mi