gpt4 book ai didi

带有 pcap 的 Python dpkt - 如何打印数据包数据?

转载 作者:行者123 更新时间:2023-12-05 05:25:27 24 4
gpt4 key购买 nike

我想从 pcap 文件中打印出数据包数据。下面的代码将数据包数据存储在一个数组中,但我不知道如何打印数组的每个元素,然后从那里拆分数据。数组上的 for 循环只返回一个错误。

import dpkt
import socket

f = open('test.pcap', 'r')
pcap = dpkt.pcap.Reader(f)

info = []

for ts, buf in pcap:

eth = dpkt.ethernet.Ethernet(buf)

if not hasattr(eth, 'ip'):
continue
info.append(eth.ip)

f.close()

print info

最佳答案

不清楚你到底想打印什么。这取决于你在寻找什么。如果你想打印 tcp 数据,那么你可以这样做:

import dpkt
f = open('test.pcap')
pcap = dpkt.pcap.Reader(f)
for ts, buf in pcap:
eth = dpkt.ethernet.Ethernet(buf)
ip = eth.data
tcp = ip.data

如果你想打印更高层的数据,你可以扩展上面的例子来实现。以HTTP为例,如下:

import dpkt

f = open('test.pcap')
pcap = dpkt.pcap.Reader(f)

for ts, buf in pcap:
eth = dpkt.ethernet.Ethernet(buf)
ip = eth.data
tcp = ip.data
if tcp.dport == 80:
http = dpkt.http.Request(tcp.data)
print http.data

有关更多详细信息,请参阅示例 here ,或 examples在 dpkt 项目中。

关于带有 pcap 的 Python dpkt - 如何打印数据包数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30932918/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com