获取数据包中的所有层

2024-04-10

如何获取 scapy 中所有图层的列表? 例如:Ether/IP/UDP/DNS or Ether/IP/TCP/HTTP。 我唯一能想到的就是做一个packet.summary()并解析输出,这看起来很粗糙。我认为应该有一个内置的方法,但在文档中找不到任何方法。有什么建议么?

我想做的是迭代用户给出的特定协议的所有字段并显示其值。

更新: 我正在寻找的东西可以在wireshark中看到:打开任何捕获,选择一个数据包,然后在“帧”菜单中,可以看到Protocols in frame: eth:ip:udp:data这正是我在 Scapy 中寻找的东西。我希望我现在更清楚了。


每个附加层都是数据包的有效负载,因此您可以迭代

def expand(x):
    yield x
    while x.payload:
        x = x.payload
        yield x

进而

res = list(expand(packet))

我希望这就是你的意思。

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

获取数据包中的所有层 的相关文章

随机推荐