网络流量pcap包特征提取并保存

前言

新手写博客,写博客主要目的是为了记录自己做项目的一些过程。关于网络流量项目,刚开始做项目一个月左右,所写的博客必然有很多不足的地方,欢迎大家交流和指教。

获取pcap包

pcap包特征提取第一步是要获得pcap包。pcap一般有两种获取方式,一种是下载开源的数据集,另外一种是通过自己抓包获得。

开源流量数据集有很多。这里贴一个博主总结的网络流量领域公开数据集。
抓包一般可以通过wireshark工具实现。在抓包的时候由于我需要获取网络流量client_hello的部分这里用了wireshark自带的过滤器来提取。

由于我需要client_hello的部分在黄色框的地方输入ssl.handshake.type == 1既可以获得有关于client_hello的数据包,然后再导出即可。
在这里插入图片描述

基于flowcontainer的特征提取

这里我在提取网络流量特征提取的时候采用了flowcontainer的库,在提取特征的时候有尝试过例如pyshark之类的库,比较用起来觉得flowcontainer方便。查阅了一些资料说是flowcontainer在速度上会比较慢,但是博主没有尝试过,大家可以自己选择。

安装flowcontianer,在自己对应环境下输入即可。

pip install flowcontainer -i https://pypi.douban.com/simple/

这里说一下自己个人在安装和使用中碰到的问题:

(1)确保环境变量有tshark的环境,这里没有配置过的,搜索下如何配置环境变量,各个环境变量配置方法基本一致。在这里插入图片描述
(2)如果在编译器(博主是pycharm)运行记得启用管理者模式否则会出现以下报错,当时博主找了N久,才de出这个bug。

OSError: tshark is not installed or added to environment path.

其他有关于该库安装和使用的问题可以参考这篇博客。当时我学习这个库主要参考了这个博主的文章。

我自己使用这个库是为了获得有关网络流量中payload_length,time_delta,以及packet_length和sni的特征。这里上代码。extension可以自己选择想要提取的特征,如果想要提取别的特征参考上面超链接博客。

from flowcontainer.extractor import extract
result = extract(r"D:\Apaper\pyproje\pyproje\client-hello.pcap",filter='',extension=['tls.handshake.extensions_server_name','frame.time_delta','frame.cap_len'])payload_length =[]  #total payload_length
time_delta=[]       #total time_delta
packet_length=[]    #total packet_length
sni = []            #total snifor key in result:value = result[key]payload_length.append(value.payload_lengths[0])#save total payload_lengthtime_delta.append((value.extension['frame.time_delta'][0])[0])#save total time_deltapacket_length.append((value.extension['frame.cap_len'][0][0]))#save total packet_lengthif ('tls.handshake.extensions_server_name' in value.extension):#一些没有sni的client_hello数据包用NULL先暂时替代sni.append((value.extension['tls.handshake.extensions_server_name'][0])[0])#save total snielse:sni.append('NULL')  #删除没有sni的pcap
for i in range (len(sni)-1,-1,-1):if sni[i] =='NULL':payload_length.pop(i)packet_length.pop(i)sni.pop(i)time_delta.pop(i)print(payload_length)
print(time_delta)
print(packet_length)
print(sni)
print('\n')

这里我以列表的形式储存了特征。之所以有删除没有sni的pcap这个步骤,是因为我使用wireshark过滤后的client_hello包没有sni标志。具体原因不太理解,如果有懂的可以评论区说下。输出的结果如下
在这里插入图片描述

然后使用保存储存到excel就可以了,完整代码,两部分直接合并修改路径即可运行。

import xlwt
f = xlwt.Workbook('encoding = utf-8') #设置工作簿编码
sheet1 = f.add_sheet('sheet1',cell_overwrite_ok=True) #创建sheet工作表
sheet1.write(0,0,'sni')
sheet1.write(0,1,'payload_length')
sheet1.write(0,2,'packet_length')
sheet1.write(0,3,'time_delta')
for i in range(len(sni)):sheet1.write(i+1,0,sni[i]) #写入对应数据sheet1.write(i+1,1,payload_length[i])sheet1.write(i+1,2,packet_length[i])sheet1.write(i+1,3,time_delta[i])f.save('text.xls')#保存.xls到当前工作目录

最终结果图

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/56845.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TCP、UDP数据包大小的限制

一、概述 首先要看TCP/IP协议,涉及到四层:链路层,网络层,传输层,应用层。    其中以太网(Ethernet)的数据帧在链路层    IP包在网络层    TCP或UDP包在传输层    TCP或UDP中的数据&…

为程序员准备的英语学习资料

程序员学习英语有用吗?当然有用,而且有很大用! 当我们浏览StackOverFlow的时候,当我们和外国技术大牛交流的时候,当我们去面试FLAG(Facebook,LinkedIn,Amazon,Google&…

黑马程序员python培训PDF下载

在分享资源之前,大家可以先想清楚未来的职业发展方向。毕竟只有找到未来职业发展方向,才更清楚当下重点学习的内容。 根据上图我们基本上一目了然,找到自己未来要发展的方向。在找到之后可以在各个招聘app上了解一下相关岗位的技能要求是什么…

黑马程序员7

算数运算符重载 运算符重载概念:对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型 加号运算符 通过自己写函数,实现两个对象相加属性后返回新的对象 两种方式重载 成员函数方式重载 全局函数重载 上来 perso…

黑马程序员14套经典IT教程+面试宝典

很多同学对互联网比较感兴趣 ,奈何苦恼不知道如何入门。今天免费给大家分享一波,黑马程序员14套经典IT教程程序员面试宝典!涉及Java、前端、Python、大数据、软件测试、UI设计、新媒体短视频等。从厌学到学嗨,你只差一套黑马教程&…

latex添加参考文献(I found no \citation commands、I found no \bibdata command、I found no \bibstyle comma)

1、处理模板里的reference.bib文件 2、使用reference.bib文件 3、添加引用 4、配置编译器,否则编译会报错。在该目录填写如下代码: {"latex-workshop.latex.outDir": "%DIR%/.build","latex-workshop.view.pdf.viewer": &…

八股文总是忘?一张图牢记JVM内存结构|金三银四系列

金三银四又来啦!八股文还是得复习起来,最近准备把一些常见的八股文知识点聊聊。 本文详解了JVM内存结构和各个部分详细内容,应付面试绰绰有余! 点击上方“后端开发技术”,选择“设为星标” ,优质资源及时送…

【Android面试】2023最新面试专题:Java虚拟机原理(一)

1 描述JVM类加载过程 这道题想考察什么? 了解JVM是如何加载类的,并且通过JVM类加载过程能更直观了解掌握如APT注解处理器执行、热修复等技术的本质 考察的知识点 JVM类加载过程 考生如何回答 类加载的本质 一般情况下,类的数据都是在C…

JVM 锁优化和逃逸分析详解

1 锁优化 JVM 在加锁的过程中,会采用自旋、自适应、锁消除、锁粗化等优化手段来提升代码执行效率。 1.1 自旋锁和自适应自旋 现在大多的处理器都是多核处理器 ,如果在多核心处理器,有让两个或者以上的线程并行执行,我们可以让一个…

kubernetes学习之路--BadPods(Part1)

摘要:对Pod配置进行实战学习,以BadPods项目为例学习危险配置。 目录 一.BadPods介绍及使用 二.BadPods配置学习 2.1 less1--Everything allowed 基本操作学习 2.2 less1--Everything allowed 渗透学习 一.BadPods介绍及使用 项目地址:h…

基于GPT3.5实现本地知识库解决方案-利用向量数据库和GPT向量接口-实现智能回复并限制ChatGPT回答的范围...

标题有点长,但是基本也说明出了这篇文章的主旨,那就是利用GPT AI智能回答自己设置好的问题 既能实现自己的AI知识库机器人,又能节省ChatGPT调用的token成本费用。 代码仓库地址 document.ai: 基于GPT3.5的通用本地知识库解决方案 下面图片是整…

英语语法大全

文章目录 一、主语1、名词、代词和动词做主语2、主语从句做主语,谓语动词用单数3、主语从句练习 二、谓语动词1、谓语动词种类2、主谓一致 三、宾语1、单宾语2、双宾语3、复合宾语4、宾语从句 四、定语1、定语从句2、定语从句的翻译 五、状语1、分词做状语2、独立主…

规模效应和网络效应

前几天小米造车、华为造车、大疆造车、滴滴造车、百度造车集中PR。群中讨论智能新能源汽车的未来集中。甚至延伸讨论到了:云计算的未来集中度、SaaS的未来集中度。怎么能提高行业集中度,是我们都在苦苦思考的。 于是就讨论到两个词:规模效应、…

真*加班狗聚众舔福豹《打工人的那些事》

真*加班狗聚众舔福豹《打工人的那些事》 文章目录 近日的杭州金钱豹外逃新闻,相信大家都听说了。 没看过的也不急,我在这里帮大家简单理一理。 根据杭州市富阳区8日官方发布,5月7日20时许,群众报警称在富阳区银湖街道受降四联村…

国内“风口”转变,中国游戏公司纷纷“外逃”,东南亚是个好去处

中国游戏开发商正在加强对国际市场,特别是东南亚市场的承诺,因为他们的国内公司正在努力应对更困难的中国市场,以便实施在下一阶段发展布局。 根据移动应用市场情报公司Sensor Tower的一份报告,按收入排名的前100名全球移动游戏中…

chatgpt赋能python:Python编译成库的利与弊

Python编译成库的利与弊 Python作为一种高级编程语言,具有简洁易读的语法和强大的生态系统,在数据科学、Web开发、游戏开发等领域得到广泛应用。然而,Python解释器的执行效率较低,因此为了提高Python程序的性能,常使用…

产业大模型刚开卷,京东跑进“最后半公里”

点击关注 文|姚 悦 编|王一粟 “京东一直在探索哪些产品、技术、场景可以真正把大模型用起来,在我们内部的场景中反复验证后,才决定在7月份对外发布,现在我们在零售、健康、物流、金融等业务场景里已经积累了一些经…

赠书 | 写作、绘画、游戏、音视频编辑…AIGC为内容生产带来了什么?

文中有数据派THU福利哦 当AIGC产品不断涌向社会,人们纷纷认为美图app“危了“的时候,美图公司创始人兼首席执行官吴欣鸿表示,影像和 AIGC 的创新结合,将带来影像生产力的大爆发,同时会为相关领域带来新的职业和新的创业…

中文公开聊天语料库

源 / 专知 语料内容 该库搜集了包含chatterbot、豆瓣多轮、PTT八卦语料、青云语料、电视剧对白语料、贴吧论坛回帖语料、微博语料小黄鸡语料共8个公开闲聊常用语料和短信,并对其进行了统一化规整和处理,达到直接可以粗略使用的目的。 使用方法 语料下载&…

获得文本语料和词汇资源(基于nltk)

在自然语言处理的实际项目中,通常要使用大量的语言数据或者语料库。本章的目的是要回答下列问题: 什么是有用的文本语料和词汇资源,我们如何使用 Python 获取它们?哪些 Python 结构最适合这项工作?编写 Python 代码时…