Pyshark——安装、解析pcap文件

news2025/2/28 0:14:26

1、简介

  • PyShark是一个用于网络数据包捕获和分析的Python库,基于著名的网络协议分析工具Wireshark和其背后的libpcap/tshark库。它提供了一种便捷的方式来处理网络流量,适用于需要进行网络监控、调试和研究的场景。以下是PyShark的一些关键特性和使用方法的介绍:
  • 主要特性
    • 捕获网络流量:可以捕获实时的网络流量,也可以读取已经捕获的pcap文件。
    • 协议解码:能够解析多种网络协议(如TCP、UDP、HTTP等),并提取具体的协议字段。
    • 过滤数据包:支持使用Wireshark/Tshark的显示过滤器语法来过滤数据包。
    • 高效处理:可以逐个数据包地处理,也可以批量处理数据包,适用于大规模流量分析。

2、安装

  • 安装Pyshark。
  • pip install pyshark
  • 【注】PyShark依赖于TShark。TShark是Wireshark的命令行版本,提供了强大的数据包捕获和分析功能。PyShark通过调用TShark来捕获和解析网络流量,因此在使用PyShark之前,需要确保TShark已正确安装并可在系统路径中访问。
  • 配置Wireshark环境变量。
  • 打开终端验证。
    • tshark -v
  • 修改Pyshark库的配置文件。D:\App\Anaconda3\envs\fuzz\Lib\site-packages\pyshark\config.ini(找到pyshark库的下载位置)
    • 注释掉原来的tshark_path路径,添加现有的路径。

3、解析pcap文件

  • 准备一个pcap文件,输出该文件中的所有FTP消息。
    • import pyshark
      
      # 读取PCAP文件
      pcap_file = 'captured_packets.pcap'  # 替换为你的PCAP文件路径
      cap = pyshark.FileCapture(pcap_file)
      
      # 遍历数据包并提取FTP数据包
      ftp_packets = []
      for packet in cap:
          if 'FTP' in packet:
              ftp_packets.append(packet)
      
      # 输出FTP数据包
      for ftp_packet in ftp_packets:
          print(ftp_packet)
  • 输出每条FTP请求或响应的功能码和含义:
    • import pyshark
      
      # 读取PCAP文件
      pcap_file = 'captured_packets.pcap'  # 替换为你的PCAP文件路径
      cap = pyshark.FileCapture(pcap_file)
      
      # 遍历数据包并提取FTP数据包
      ftp_packets = []
      for packet in cap:
          if 'FTP' in packet:
              ftp_packets.append(packet)
      
      # 输出FTP数据包
      for ftp_packet in ftp_packets:
          # 打印整个FTP层信息
          for layer in ftp_packet.layers:
              if layer.layer_name == 'ftp':
                  if layer.get_field("request") == 'True':
                      print("request:")
                      print(f"    request_command: {layer.get_field('request_command')}")
                      print(f"    request_arg: {layer.get_field('request_arg')}")
                  if layer.get_field("request") == 'False':
                      print("response:")
                      print(f"    response_code: {layer.get_field('response_code')}")
                      print(f"    response_arg: {layer.get_field('response_arg')}")

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

顺势而为:雷军、小米与创业成功的深层思考

一、引言 在当今快速发展的商业环境中,成功的企业家如马云和雷军,都以其独特的商业智慧和不懈的勤奋精神赢得了业界的尊重。然而,当我们深入探讨他们的成功之道时,会发现一个更为核心的因素——“顺势而为”。本文将基于雷军对不…

HTML静态网页成品作业(HTML+CSS+JS)——我的家乡福州介绍网页(3个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,使用Javacsript代码实现图片轮播,共有3个页面。 二、作品…

Linux mongodb安装及简单使用

说明:本文章主要是对mongodb的单击安装 1.创建文件夹,准备安装包 cd /user/local mkdir tools 2.解压mongodb包 mkdir mongodb tar -xvf mongodb-linux-x86_64-rhel70-5.0.11.tgz -C mongodb 3.进入解压目录 cd mongodb cd mongodb-linux-x86_64-…

spark 整合 yarn

spark 整合 yarn 1、在master节点上停止spark集群 cd /usr/local/soft/spark-2.4.5/sbin ./stop-all.sh 2、spark整合yarn只需要在一个节点整合, 可以删除node1 和node2中所有的spark文件 分别在node1、node2 的/usr/local/soft目录运行 rm -rf spark-2.4.…

千脑计划:模拟人类大脑皮层,开启AI新纪元

随着科技的飞速发展,人工智能已成为当今时代的热门话题。然而,目前主流的深度神经网络虽然取得了显著成就,但也面临着能耗高、稳定性差等问题。为了解决这些挑战,一项名为“千脑计划”的宏伟项目应运而生,旨在通过模仿…

Nacos配置中心不可用会有什么影响

服务端: Nacos的数据存储接口 com.alibaba.nacos.config.server.service.DataSourceService 有两种实现: 如果指定了mysq 作为数据库,则必须使用 mysql 如果是 集群方式部署Nacos,则必须使用mysql 如果是单例方式部署 并且 没…

【因果推断python】37_断点回归3

目录 羊皮效应和模糊 RDD(Fuzzy RDD) 麦克雷测试(McCrary Test) 关键思想 羊皮效应和模糊 RDD(Fuzzy RDD) 关于教育对收入的影响,经济学有两种主要观点。第一个是广为人知的论点,…

springboot应用cpu飙升的原因排除

1、通过top或者jps命令查到是那个java进程, top可以看全局那个进程耗cpu,而jps则默认是java最耗cpu的,比如找到进程是196 1.1 top (推荐)或者jps命令均可 2、根据第一步获取的进程号,查询进程里那个线程最占用cpu,发…

C++ | Leetcode C++题解之第168题Excel表列名称

题目: 题解: class Solution { public:string convertToTitle(int columnNumber) {string ans;while (columnNumber > 0) {--columnNumber;ans columnNumber % 26 A;columnNumber / 26;}reverse(ans.begin(), ans.end());return ans;} };

计算机组成原理---Cache的基本工作原理习题

对应知识点: Cache的基本原理 1.某存储系统中,主存容量是Cache容量的4096倍,Cache 被分为 64 个块,当主存地址和Cache地址采用直接映射方式时,地址映射表的大小应为()(假设不考虑一致维护和替…

C#.Net筑基-类型系统②常见类型

01、结构体类型Struct 结构体 struct 是一种用户自定义的值类型,常用于定义一些简单(轻量)的数据结构。对于一些局部使用的数据结构,优先使用结构体,效率要高很多。 可以有构造函数,也可以没有。因此初始…

SpringCloud Alibaba Sentinel 流量控制之流控模式实践总结

官网文档:https://sentinelguard.io/zh-cn/docs/flow-control.html wiki地址:https://github.com/alibaba/Sentinel/wiki/%E6%B5%81%E9%87%8F%E6%8E%A7%E5%88%B6 本文版本:spring-cloud-starter-alibaba:2.2.0.RELEASE 如下图所…

【归并排序】| 详解归并排序 力扣912

🎗️ 主页:小夜时雨 🎗️专栏:归并排序 🎗️如何活着,是我找寻的方向 目录 1. 题目解析2. 代码 1. 题目解析 题目链接: https://leetcode.cn/problems/sort-an-array/ 我们上道题讲过归并排序的核心代码&a…

idea 创建properties文件,解决乱码

设置properties文件编码 点击file->Settings File Encodings->设置utf-8 重新创建.properties文件才生效

MySQL的自增 ID 用完了,怎么办?

MySQL 自增 ID 一般用的数据类型是 INT 或 BIGINT,正常情况下这两种类型可以满足大多数应用的需求。 当然也有不正常的情况,当达到其最大值时,尝试插入新的记录会导致错误,错误信息类似于: ERROR 167 (22003): Out o…

算法期末整理(正在更新中)

一 算法概述 算法的概念 通俗地讲,算法是指解决问题的一种方法或一个过程。更严格地讲,算法是由若干条指令组成的有穷序列。 算法的性质 1.输入:有0个或多个由外部提供的量作为算法的输入。 2.输出:算法产生至少一个量作为输出。…

【机器学习300问】126、词嵌入(Word Embedding)是什么意思?

人类的文字,作为一种高度抽象化的符号系统,承载着丰富而复杂的信息。为了让电脑也能像人类一样理解并处理这些文字,科学家们不断探索各种方法,以期将人类的语言转化为计算机能够理解的格式。 一、One-Hot编码的不足 在自然语言处…

每月策略会议

周一顾问策略会议,对于企业辅导而言,领导力是可以培训的,而决策力不是靠培训就能达成,是需要反复训练和反思。从最为关心的一个状况出发,去行动才会有结果,有了结果反思我们的假设是否有盲区是否有误才有可…

LVGL开发教程-Grid(网格布局)

系列文章目录 知不足而奋进 望远山而前行 目录 系列文章目录 文章目录 前言 1. 常用方法 2. 代码实现 总结 前言 网格布局(Grid Layout)是一种强大的布局方式,它允许将项目按照行和列的二维表格方式进行排列。LVGL(Little…

分布式之日志系统平台ELK

ELK解决了什么问题 我们开发完成后发布到线上的项目出现问题时(中小型公司),我们可能需要获取服务器中的日志文件进行定位分析问题。但在规模较大或者更加复杂的分布式场景下就显得力不从心。因此急需通过集中化的日志管理,将所有服务器上的日志进行收集汇总。所以ELK应运而生…