PyShark入门(1):简介

2023-05-16

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

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

文章作者以PyShark为基础开发了Cloud-Pcap,一个类似CloudShark的pcap在线存储、分析工具。

你可以使用PyShark在网络接口上进行嗅探,或者打开存储的pcap文件进行分析。如PyShark主页文档中展示的:

import pyshark

# 打开存储的捕获文件
cap = pyshark.FileCapture('/tmp/mycapture.cap')

# 从网络接口上进行捕获
capture = pyshark.LiveCapture(interface='eth0')
capture.sniff(timeout=10)
<LiveCapture (5 packets)>

使用 LiveCapture 或者 FileCapture 方法建立 Capture 对象后,在捕获(capture)和数据包(packet)层面就会有多个方法和属性可用。PyShark的强大在于可以调用tshark内建的所有数据包解码器。我这里只简单展示一下你可以做的一些事情,后续的文章中会展开更深入的说明。

  1. 获取数据包摘要(类似于tshark捕获的输出)

    >>> for pkt in cap:
    ...:     print pkt
    ...:
    2 0.512323 0.512323 fe80::f141:48a9:9a2c:73e5 ff02::c SSDP 208 M-SEARCH * HTTP/
    3 1.331469 0.819146 fe80::159a:5c9f:529c:f1eb ff02::c SSDP 208 M-SEARCH * HTTP/
    4 2.093188 0.761719 192.168.1.1 239.255.255.250 SSDP 395 NOTIFY * HTTP/1.  0x0000 (0)
    5 2.096287 0.003099 192.168.1.1 239.255.255.250 SSDP 332 NOTIFY * HTTP/1.  0x0000 (0)
  2. 按层深入获取数据包属性

    >>> pkt.   #(tab auto-complete)
    pkt.captured_length     pkt.highest_layer       pkt.ip                  pkt.pretty_print        pkt.transport_layer
    pkt.eth                 pkt.http                pkt.layers              pkt.sniff_time          pkt.udp
    pkt.frame_info          pkt.interface_captured  pkt.length              pkt.sniff_timestamp
    >>>
    >>> pkt[pkt.highest_layer].    #(tab auto-complete)
    pkt_app.                 pkt_app.get_field_value  pkt_app.raw_mode         pkt_app.request_version
    pkt_app.DATA_LAYER       pkt_app.get_raw_value    pkt_app.request
    pkt_app.chat             pkt_app.layer_name       pkt_app.request_method
    pkt_app.get_field        pkt_app.pretty_print     pkt_app.request_uri
  3. 遍历数据包,对每个数据包使用给定函数处理

    >>> cap = pyshark.FileCapture('test.pcap', keep_packets=False)
    >>> def print_highest_layer(pkt)
    ...: print pkt.highest_layer
    >>> cap.apply_on_packets(print_highest_layer)
    HTTP
    HTTP
    HTTP
    HTTP
    HTTP
    ... (truncated)

这些只算是管中窥豹! 谁能想到在Python脚本中使用tshark/Wireshark的强大力量会如此容易呢!
我现在发现的唯一缺陷是性能。一旦你开始处理几千个数据包,PyShark就开始变慢了。
后续文章中会说明需要那些措施来保留内存。


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

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

PyShark入门(1):简介 的相关文章

  • 黑箱方法-神经网络①

    人工神经网络 人工神经网络的概念 人工神经网络 xff08 Artificial Neural Networks xff0c ANN xff09 是对一组输入信号和一组输出信号之间的关系进行建模 xff0c 使用的模型来源于人类大脑对来自感
  • 飞行前的准备工作

    1 飞控固件 Mission Planner 里的版本 xff0c 好像没有offboard和一些参数的设置 Mission Planner中固件下载 3 3 3 3 4 6 Qground Control中的固件QGC中的固件中有offb
  • make menuconfig 无法启动处理方法

    ake menuconfig Unable to find the ncurses libraries required header files 问题 xff1a lzz 64 lzz virtual machine linux 2 6
  • Ubuntu下自动输入sudo密码

    sudo 自动输入密码 echo 34 password 34 sudo S netstat tlnp S参数 The S stdin option causes sudo to read the password from the sta
  • ssh 或 putty 连接linux报错解决方法

    由于当天多次输入错误密码 xff0c ssh和putty就连接不上了 xff0c 纠结了很久解决问题 ssh连接提示错误 xff1a server unexpectedly closed network connection putty 连
  • Postman 安装及使用入门教程

    安装 本文只是基于 Chrome 浏览器的扩展插件来进行的安装 xff0c 并非单独应用程序 首先 xff0c 你要台电脑 xff0c 其次 xff0c 安装有 Chrome 浏览器 xff0c 那你接着往下看吧 1 官网安装 xff08
  • k8s通过service访问pod(五)--技术流ken

    service 每个 Pod 都有自己的 IP 地址 当 controller 用新 Pod 替代发生故障的 Pod 时 xff0c 新 Pod 会分配到新的 IP 地址 这样就产生了一个问题 xff1a 如果一组 Pod 对外提供服务 x
  • 计算机图形学在GIS中的应用,GIS在交通中的应用与发展-

    xff27 xff29 xff33 在交通中的应用与发展 摘 要 xff1a 地理信息技术的日臻成熟为 xff27 xff29 xff33 在交通领域内的广泛应用创造了一定基础 本文总结了 xff27 xff29 xff33 技术的特点 x
  • 查询MYSQl数据表中的最后一条记录

    mysql select from table order by id DESC limit 1 oracle select from emp where id in select max id from emp 实例 xff1a mysq
  • Windows 10 替换 cmd 的命令行工具

    最近找 Windows 10 的命令行工具 xff0c 发现了 Windows 自带的 PowerShell xff0c 确实功能强大 推荐 查找方法 xff1a 搜索 xff0c PowserShell 打开就能用 https www z
  • 压控恒流源电路

    http bbs 21ic com forum php mod 61 viewthread amp tid 61 1634988 amp highlight 61 4 20ma 最简单简陋的电流输出电路 xff0c 是用 三级管 43 放大
  • OFFBOARD

    Pixhawk的offboard模式 xff0c 是指我们不用遥控器操控飞机 xff0c 也不用地面站给它设定plan 直接用飞机上的板载计算机来与Pixhawk进行通信 xff0c 控制飞机运动 准备工作 xff1a 首先要有一个板载计算
  • 思考: 从曲线中提取出近似直线的一段

    这个问题也是别人问我的 我思考了一些时间 希望抛砖引玉 得到更好的方法 问题是这样的 有一些离散的点 在坐标系中把它们拟合成一条曲线 其中有一段看上去很像是直线 现在要求出这段 34 直线 34 的起始坐标和结束坐标 并把这条线的方程求出来
  • 课程第一天内容《基础交换 一 》

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 项目流程介绍 xff1a 前期 中期 后期 xff1b 项目任务分解 xff1a 工具 甘特图 xff1b 任务 时间 负责人 xff1b 网络设备介绍 xff1a 交换机
  • hewlett-packard 设置 HP启动设置

    开机按 F8进入高级选项安全模式 F9进入启动顺序选择项 F10进入双系统选择项 ESC进入启动选项键选择界面 Delete键进入BIOS please select boot device 请选择启动装置 UEFI boot source
  • 收藏了很久的:5款电影网站!高清大片任意看!就没有找不到资源!

    一放假就剧荒 xff1f 没有时间去电影院看 xff1f 那这5款电影网站你很需要 xff01 Top1 xff1a 中国高清网 各种大片任意看 xff01 最新上映还是好莱坞大片 xff0c 想看什么就看什么 xff01 还怕剧荒 xff

随机推荐