如何从pcap文件中仅提取特定的子图层?例如,所有数据包都包含以下层:Ethernet
,IP
,SCTP
,...我需要从SCTP
层提取数据包的十六进制代码。我可以使用以下命令提取tshark
的数据包:
tshark -x -r mylog.pcap
但输出十六进制数据包包含所有层,包括Ethernet
和IP
。如何排除提取的输出中的Ethernet
和IP
图层?
答案 0 :(得分:1)
您可以使用python + scapy在p.getlayer(SCTP)
或任何其他图层的每个数据包中选择给定图层。
您的pcap文件的内容可以read使用:
capture=rdpcap("/path/to/mylog.pcap")
处理类似
for pkt in capture:
print pkt.getlayer(SCTP)
>>> a=rdpcap("/spare/captures/isakmp.cap")
>>> a
<isakmp.cap: UDP:721 TCP:0 ICMP:0 Other:0>
检查http://www.secdev.org/projects/scapy/doc/usage.html#index-9