Python解析pcap文件示例

 更新时间:2022年07月15日 09:34:11   作者:花匠小林  
这篇文章主要为大家介绍了Python解析pcap文件示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

引言

近期做一些基于TCP协议的项目,跟其他接口方调试时经常出现不一致的问题,而程序日志又不能完成保证公正,就只能通过tcpdump抓包的方式来排查问题了。
由于是自定义的协议,用wireshark只能解析成16进制的报文,排查起来并不方便,而实现相关的插件又要用到C++或者LUA语言,这两者我都极少接触,因此,只能临时用Python写程序来解析了~

首先,需要安装对应的依赖:

pip install dpkt

我们用tcpdump或者wireshark抓到对应的内容后,保存为 tcp-log.pcap 文件,然后就可以解析了(以下代码基于Python3):

import dpkt
import socket

file = 'tcp-log.pcap'
with open(file, 'rb') as fr:
    pcap = dpkt.pcap.Reader(fr)
    for timestamp, buffer in pcap:
        ethernet = dpkt.ethernet.Ethernet(buffer)
        # 我们仅需要TCP的包
        if not isinstance(ethernet.data, dpkt.ip.IP):
            continue
        ip = ethernet.data
        if not isinstance(ip.data, dpkt.tcp.TCP):
            continue
        tcp = ip.data
        # 过滤掉内容为空的包
        if len(tcp.data) == 0:
            continue
        # 发送方的IP
        src = socket.inet_ntoa(ip.src)
        # 接收方的IP
        dst = socket.inet_ntoa(ip.dst)
        # 报文内容(byte数组)
        byteArray = tcp.data
        # TODO 根据自定义的协议内容,解析bytes数组

以上就是Python解析pcap文件方法示例的详细内容,更多关于Python解析pcap文件的资料请关注脚本之家其它相关文章!

相关文章

  • Python实现Linux的find命令实例分享

    Python实现Linux的find命令实例分享

    本文给大家分享的是使用python简单实现模拟linux的find命令的实例代码,推荐给大家,希望大家能够喜欢
    2017-06-06
  • python得到windows自启动列表的方法

    python得到windows自启动列表的方法

    今天小编就为大家分享一篇python得到windows自启动列表的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • Python中实现定时任务详解

    Python中实现定时任务详解

    这篇文章主要介绍了Python中实现定时任务详解的相关资料,需要的朋友可以参考下
    2023-07-07
  • python正则表达式对字符串的查找匹配

    python正则表达式对字符串的查找匹配

    正则表达式是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”),下面这篇文章主要给大家介绍了关于python正则表达式对字符串的查找匹配的相关资料,需要的朋友可以参考下
    2022-09-09
  • python+opencv实现移动侦测(帧差法)

    python+opencv实现移动侦测(帧差法)

    这篇文章主要为大家详细介绍了python+opencv实现移动侦测,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • 启动Atom并运行python文件的步骤

    启动Atom并运行python文件的步骤

    在本篇文章中我们给大家分享了启动Atom并运行python文件的步骤以及具体做法,需要的朋友们参考下。
    2018-11-11
  • 30秒学会30个超实用Python代码片段【收藏版】

    30秒学会30个超实用Python代码片段【收藏版】

    许多人在数据科学、机器学习、web开发、脚本编写和自动化等领域中都会使用Python,它是一种十分流行的语言。本文将简要介绍30个简短的、且能在30秒内掌握的代码片段,感兴趣的朋友一起看看吧
    2019-10-10
  • Python中函数参数调用方式分析

    Python中函数参数调用方式分析

    这篇文章主要介绍了Python中函数参数调用方式,结合实例形式分析了Python函数参数定义与使用的四种常见操作方法,需要的朋友可以参考下
    2018-08-08
  • Python一文入门Flask Blueprint SQLAlchemy部分详解

    Python一文入门Flask Blueprint SQLAlchemy部分详解

    这篇文章主要为大家介绍了Python一文入门Flask Blueprint SQLAlchemy部分详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • 在python plt图表中文字大小调节的方法

    在python plt图表中文字大小调节的方法

    今天小编就为大家分享一篇在python plt图表中文字大小调节的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07

最新评论