访问每个数据包的RAW字段

问题描述

对于个人项目,我需要捕获数据包。我已经在我测试的以下代码中作为示例放置的端口上完成了此操作。我感兴趣的应用程序在此端口上进行通信,并且一旦打开(程序正在运行),我就进行数据包交换。我通过将prn替换为prn = lambda x: x.summary()

进行了测试

我的问题如下。我想检索RAW层中包含它的数据包的内容。一种解决方案是用pkt[3]["RAW"].load()中的3来制作index,但这不适用于count = 0,我想连续地检索数据包。

所以我的想法是为每个数据包创建一个函数,以检查它是否具有RAW层。如果是这样,它将显示其load字段。但是我的代码没有索引就无法工作。我想到了foreach循环,但没有成功。

您知道如何进行吗?这是我目前的状态。

from scapy.all import *

def showData():
    if (x.haslayer("RAW")):
        #do a x[...]["RAW"].load()
       
pkt = sniff(count=0,filter = "tcp port 6800",prn = lambda x: x.showData())

预先感谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)