我有一些 pcap 文件,我需要从中提取一些信息,这些数据包是混合的,一些是原始 IP,另一些包含以太网帧。
我需要在解析之前有条件地检查数据包的类型,因为带有以太网帧的数据包可以被解析为:
for ts, buf in pkts:
if buf contains_ethernet:
eth = dpkt.ethernet.Ethernet(buf)
if eth.type == dpkt.ethernet.ETH_TYPE_IP:
ip = eth.data
else:
continue
else:
ip = dpkt.ip.IP(buf)
如何将其定义contains_ethernet
为布尔值或条件?