PyShark入门(2):FileCapture和LiveCapture模块

2023-05-16

原文地址:http://zodiacg.net/2016/07/in...

本系列文章译自thePacketGeek的系列文章。原创翻译,转载请注明出处。

PyShark中进行数据包分析的两个典型方法是使用 FileCaptureLiveCapture 模块。
前者从一个存储的捕获文件中导入u数据包,后者将使用本机的网络接口进行嗅探。
使用这两个模块都会返回一个 capture 对象。之后的文章中会详细介绍。
我们首先来了解一下这两个模块如何使用。

两个模块提供相似的参数来控制 capture 对象中返回的数据包。下面的定义直接从模块的docstring中获取:

  • __interface__: [仅用于LiveCapture] 进行嗅探的网络接口。如果没有给出,使用可用的第一个接口。

  • __bpf_filter__: [仅用于LiveCapture] 在嗅探时使用的BPF(tcpdump)过滤条件。

  • __input_file__: [仅用于FileCapture] 保存的捕获文件的路径(PCAP, PCAPNG格式)。

  • __keep_packets__: 设定在调用next()函数之后是否保留之前读取的数据包。用于在读取较大的捕获时节省内存。

  • __display_filter__: 设定在读取捕获时使用的display过滤条件(即Wireshark过滤器)。

  • __only_summaries__: 仅产生数据包摘要,比正常读取速度快的多,但包含信息很少。

  • __decryption_key__: 可选的用于加密解密捕获的流量的密钥。

  • __encryption_type__: 捕获的数据流量所使用的加密标准(必须是WEP,WPA-PWD或WPA-PWK中之一,默认是WPA-PWK)。

only_summaries选项

使用 only_summaries 后,返回的 capture 对象中的数据包将只包含摘要信息,类似于tshark的默认输出:

>>> cap = pyshark.FileCapture('test.pcap', only_summaries=True)
>>> print cap[0]
2 0.512323 0.512323 fe80::f141:48a9:9a2c:73e5 ff02::c SSDP 208 M-SEARCH * HTTP/

使用这个选项,读取捕获文件将变得很快,但每个数据包将只包含下面的这些属性。如果你想获取嗅探中的IP地址来构建会话列表,或者使用时间和包长度来计算带宽的统计数据,那么这些信息也足够了。

>>> pkt.     #(tab auto-complete)
pkt.delta         pkt.info          pkt.no            pkt.stream        pkt.window
pkt.destination   pkt.ip id         pkt.protocol      pkt.summary_line
pkt.host          pkt.length        pkt.source        pkt.time

keep_packets选项

PyShark只会在要对数据包进行处理的时候才会将其读入内存。在你处理数据包的过程中,PyShark会将每个数据包添加到 capture 对象中叫 _packet 的列表属性的末尾。当处理大量的数据包时,这个列表将占用大量的内存,因此PyShark提供了这个选项使得内存中一次仅保留一个数据包。如果 keep_packets 设置为False(默认为True),PyShark在读取新数据包时会将上一个从内存中清除。我发现这样能提升一点数据包遍历处理的速度,提升一点也是好的!

display_filter和bpf_filter

这些过滤器有助于使你的应用集中精力于你想要分析的内容上。类似于使用Wireshark或者tshark进行嗅探,BPF过滤器可以用于确定进入到返回的 capture 对象中的流量。
BPF过滤器的灵活性不如Wireshark的display过滤器,但是你仍可以创造性的使用这些有限的关键字和偏移过滤器。
如果需要对使用BPF过滤器更详细的说明,参考Wireshark的官方文档。
下面是一个使用BPF过滤器嗅探目标HTTP流量的例子:

>>> cap = pyshark.LiveCapture(interface='en0', bpf_filter='ip and tcp port 80')
>>> cap.sniff(timeout=5)
>>> cap
   <LiveCapture (21 packets)>
>>> print cap[5].highest_layer
HTTP

在读取保存的捕获文件时,你可以通过设置 display_filter 选项,利用Wireshark强大的解析器来限制返回的数据包。
下面是没有使用过滤器的情况下,我的test.pcap文件中的前几个数据包:

>>> cap = pyshark.FileCapture('test.pcap')
>>> for pkt in cap:
...:    print pkt.highest_layer
...:
HTTP
HTTP
HTTP
TCP
HTTP
... (truncated)

使用了display过滤器来限制只显示DNS数据流量:

>>> cap = pyshark.FileCapture('test.pcap', display_filter="dns")
>>> for pkt in cap:
...:    print pkt.highest_layer
...:
DNS
DNS
DNS
DNS
DNS
... (truncated)

针对LiveCapture的附加说明

在遍历 LiveCapture 返回的 capture 对象时我发现了一个奇怪的现象。似乎当你试图遍历数据包列表时,它会从头开始进行嗅探,然后实时的进行遍历(来一个数据包就进行一次遍历)。我目前没有发现能够存储下数据包的方法, LiveCapture 仅能用于实时处理数据包。


上一篇:PyShark入门(1):简介
下一篇:PyShark入门(3):capture对象

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

PyShark入门(2):FileCapture和LiveCapture模块 的相关文章

  • 多项式与连分式函数的计算

    2019独角兽企业重金招聘Python工程师标准 gt gt gt include 34 stdafx h 34 include lt stdlib h gt include lt stdio h gt include lt math h
  • iPad适合写作吗

    我一直感觉对着电脑不利于思考 xff0c 当需要纯粹的思考时 xff0c 我习惯让视线离开屏幕 xff0c 起身走动两圈 xff0c 再用纸和笔整理思路 xff0c 想清楚后 xff0c 开始动手编码 双手端着iPad时 xff0c 似乎也
  • Dell服务器硬件,RAID等查询和维护软件OMSA

    Dell服务器硬件 RAID等查询和维护软件OMSA 2010 09 10 14 34 OMSA OpenManage Server Administrator 是Dell主机的硬件检测和维护软件 OMSA OpenManage 下载地址
  • GVIM设置背景颜色

    首先找到GVim的安装目录 xff0c 在安装目录下你可以发现一个 vimrc文件 使用文本编辑器打开后在里面添加两行代码即可 xff1a 代码如下 set gfn 61 Courier New h14 colorscheme torte
  • 实战ASP.NET访问共享文件夹(含详细操作步骤)

    博客园找找看 xff08 http zzk cnblogs com xff09 的索引文件占用空间太大 xff0c 需要移至另外一台服务器 xff0c 所以要解决 在ASP NET中通过共享文件夹访问索引文件 的问题 假设找找看的ASP N
  • Linux 后台开发工作中常用的开源库

    后台开发 xff0c 语言主要是 c 和 c 43 43 这里简单罗列一下工作中用的很频繁的那些开源软件 1 OpenSSL openssl OpenSSL 是一个安全套接字层密码库 xff0c 囊括主要的密码算法 常用的密钥和证书封装管理
  • [转载]三款SDR平台对比:HackRF,bladeRF和USRP

    这篇文章是 Taylor Killian 13年8月发表在自己的博客上的 他对比了三款平价的SDR平台 xff0c 认为这三款产品将是未来一年中最受欢迎的SDR平台 我觉得这篇文章很有参考价值 xff0c 简单翻译一份转过来 原文在这里 x
  • VINS-Mono运行与评测

    VINS Mono运行与评测 1 修改VINS mono轨迹保存代码1 1 修改 visualization cpp1 2 修改 pose graph cpp1 3 修改VINS mono运行参数 2 EVO 显示轨迹2 1 分析单条轨迹2
  • linux 虚拟机串口通信,单片机和虚拟机里的Linux进行串口通信

    最近在做单片机的火焰传感器采集数据并且并且将危险信息发送给PC端的Linux 一直卡在Linux端的 xff0c 所以 xff0c 做了各种尝试 xff0c 参考了网上一篇大神的代码 xff0c 终于把自己的东西弄了出来 先说明设备吧 xf
  • ArUco----一个微型现实增强库的介绍及视觉应用(二)

    ArUco 一个微型现实增强库的介绍及视觉应用 xff08 二 xff09 ArUco 一个微型现实增强库的介绍及视觉应用 xff08 二 xff09 一 第一个ArUco的视觉应用 首先介绍第一个视觉应用的Demo xff0c 这个应用场
  • ssh连接失败,排错经验

    一 场景描述 ssh连接服务器 xff0c 发现连接失败 xff0c 但是对应服务器的ip能够ping通 场景 xff1a root 64 yl web ssh root 64 10 1 101 35 ssh exchange identi
  • 什么是真正的程序员?

    什么是真正的程序员 这篇文章的原文来自 xff1a A Little Printf Story 作者仿照 小王子 中的情节 xff0c 通过小printf遇见的不同类型的程序员 xff0c 最后悟出什么才是真正的程序员 xff01 第一次翻
  • gpio引脚介绍 树莓派3b_树莓派介绍

    树莓派介绍 陈拓 chentuo 64 ms xab ac cn 2018 05 16 2018 05 16 1 什么是树莓派 xff08 Raspberry Pi xff09 树莓派是由树莓派基金会研发的一种只有信用卡大小的单板机电脑 x
  • 解析kubernetes架构

    一 简介 xff1a kubernetes是一个开源的容器管理工具 xff0c 是基于GO语言开实现的 xff0c 轻量级和便携式的应用 xff0c 可以把kubernetes cluster在linux主机上部署 管理和扩容docker容
  • STM32串口/RS232/RS485

    1 串口引脚 xff0c 如果是异步通讯将UART CLK共地即可 xff0c 如果同步需要时钟 a UART RX 数据接收引脚 b UART TX 数据发送引脚 c UART CLK 时钟引脚 2 UART描述 为全双工 xff0c 异
  • 又是一年年终总结

    起 这篇年终总结草稿是在12 03起的 xff0c 那是突然之间感觉到今年不大平常 xff0c 可以考虑写个年终总结来记录一下 xff0c 但是谁能料到今年真的是太不平常了 xff0c 到了12月中 xff0c 公司就解散了 xff0c 所

随机推荐

  • 开源自主导航小车MickX4(七)cartographer 室外3D建图

    开源自主导航小车MickX4 xff08 七 xff09 cartographer 室外3D建图 1 cartographer 3D建图demo1 1 cartographer 安装1 2 3D数据集建图1 3 3D定位 2 小车上的3D建
  • FreeRTOS+Trace(04) Xilinx Microblaze平台使用FreeRTOS+Trace

    本章节以 Xilinx Microblaze 平台为例 介绍如何在该目标平台上使用 FreeRTOS Trace 的快照记录功能 所使用的 Xilinx SDK 版本为 2018 2 并在 SDk 中已经创建好了一个目标平台为 Microb
  • Git子模块相关

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 添加子模块 如果项目分的模块比较多 xff0c 而且对每个模块需要独立管理的话 xff0c 子模块就派上用场了 每一个子模块都是一个独立的git仓库 xff0c 有点类似于
  • 更新k8s镜像版本的三种方式

    一 知识准备 更新镜像版本是在k8s日常使用中非常常见的一种操作 xff0c 本文主要介绍更新介绍的三种方法 二 环境准备 组件版本OSUbuntu 18 04 1 LTSdocker18 06 0 ce 三 准备镜像 首先准备2个不同版本
  • LTE中的各种ID含义

    原文链接 xff1a http www hropt com ask q 7128 html ECI 28 Bits 61 eNB ID 20 Bits 43 Cell ID 8 Bits 换成16进制就是ECI共7位 xff0c eNB I
  • 西门子Step7找不到有效授权的解决方法

    1 停止automation license manager service服务 2 删除授权文件 检查你的授权文件夹AX NF ZZ是放在哪个盘 xff0c C盘还是D盘 xff0c 在工具 文件夹选项 查看 选上显示所有文件和文件夹 x
  • AUGULAR安装使用

    先下载并安装NODE js xff0c 里面包含安装完成后已包含NPM NPM应该是augular一个管理工具 https www angular cn docs ts latest guide setup html develop loc
  • 成功不是依靠机会 ---- 参加移动开发者大会大会有感

    这次有幸参加了CSDN和创新工厂主办的移动开发者大会 xff0c 感觉良多 第一印象是 xff1a 这真的是一次技术的大会 我之前参加过很多大会 我特别说的是微软的技术大会 xff0c 已经感受不到什么技术的味道了 xff0c 或者说是这种
  • 基于机器学习的web异常检测

    基于机器学习的web异常检测 Web防火墙是信息安全的第一道防线 随着网络技术的快速更新 xff0c 新的黑客技术也层出不穷 xff0c 为传统规则防火墙带来了挑战 传统web入侵检测技术通过维护规则集对入侵访问进行拦截 一方面 xff0c
  • rosserial_java_ros系统下通过pyserial模块实现串口通讯(Python)

    经过几天的摸索终于实现了 xff1a 在ros系统下 xff0c 订阅Twist cmd vel 消息 xff0c 经过USB转串口通信 xff0c 实现了通过灯带实时反映小车 差速 运行状态的功能 通信部分主要依赖pyserial模块的功
  • 禁止显示Apache目录列表-Indexes FollowSymLinks

    禁止显示Apache目录列表 Indexes FollowSymLinks 如何修改目录的配置以禁止显示 Apache 目录列表 缺省情况下如果你在浏览器输入地址 xff1a http localhost 8080 如果你的文件根目录里有
  • 一个老兵的linux学习和面试经验分享

    特别说明 xff1a 本文为约9个月前老男孩linux培训内部师兄给师弟的经验分享 xff0c 经过该同学同意 xff0c 特此分享给所有博友 学习和面试经验分享 大家好 xff0c 非常高兴能在这里给大家分享学习和面试的经验 xff0c
  • 开源自主导航小车MickX4(八)LeGo-LOAM 室外3D建图

    开源自主导航小车MickX4 xff08 八 xff09 LeGo LOAM 室外3D建图 1 安装 LeGO LOAM1 1安装依赖项 2 运行 LeGO LOAM2 1 运行论文demo2 2 修改配置文件2 3 运行自己的bag包2
  • 微信支付开发中遇到的两个神坑

    微信支付本身是提供了三大Web开发语言的SDK下载的 xff0c 按理说应该很Easy怎么会有坑呢 xff1f 其实坑大多出在文档上 xff0c 文档不完善 xff0c 很多东西都得你去摔一跤才明白 xff0c 事先绝不告诉你 xff0c
  • 实现PC视频播放最强画质教程( Potplayer播放器+MADVR插件)【转】

    转自 xff1a http www hangge com blog cache detail 1461 html 一 MADVR介绍 MADVR 是一款超强的视频插件 xff0c 其配合高清播放软件 xff0c 可以做到目前 PC 上播放高
  • 自动化运维为什么是必须的?

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 运维团队负责最大限度提高效率 降低成本 xff0c 这也意味着他们往往承受着巨大的压力 xff0c 需要解决在不增加员工的情况下 xff0c 最大限度产出价值的问题 达成这
  • 如何理解事件溯源

    在近期举行的PHPDublin见面会上 xff0c 来自DynamicRes的架构师Barry Sullivan被问到 什么是事件溯源 xff0c 作为对这个问题的回答 xff0c 他在博客上写下了这篇文章 xff0c 详细解释了什么是事件
  • C语言 · 删除数组中的0元素

    算法提高 6 9删除数组中的0元素 时间限制 xff1a 1 0s 内存限制 xff1a 512 0MB 编写函数CompactIntegers xff0c 删除数组中所有值为0的元素 xff0c 其后元素向数组首端移动 注意 xff0c
  • 解决com.intellij.openapi.project.IndexNotReadyException: Please change caller according to com.intelli...

    File gt Invalidate Cache and Restart
  • PyShark入门(2):FileCapture和LiveCapture模块

    原文地址 xff1a http zodiacg net 2016 07 in 本系列文章译自thePacketGeek的系列文章 原创翻译 xff0c 转载请注明出处 PyShark中进行数据包分析的两个典型方法是使用 FileCaptur