我是Python和dpkt模块的新手,需要一些帮助。我尽可能多地研究这个问题,但无济于事。我的经理要我创建一个解析PCAP文件的程序,并将IP地址写入文本文件,而不管流量类型(HTTP,FTP等等)如何。我已经找到了基础知识(因为示例代码是在线发布的),但我不知道如何解析.pcap文件中的第一个条目。
我得到的最接近的是尝试使用“zip”命令,但这不起作用,我无法弄清楚如何打印出多个IP,这是令人沮丧的。有人能给我任何指示吗?我并不反对使用其他模块,如scapy,如果这样可以使这项任务更容易。
答案 0 :(得分:0)
一种方法可能是使用Scapy读取.pcap并迭代每个数据包并提取其IP。也许是这样的:
from scapy.all import *
fob = rdpcap('test_pcap.pcap')
cap = []
for pkt in fob:
if pkt.haslayer(IP):
if pkt[IP].src not in cap:
cap.append(pkt[IP].src)
if pkt.haslayer(ARP):
if pkt[ARP].psrc not in cap:
cap.append(pkt[ARP].psrc)
print(cap)