使用dpkt从PCAP文件中获取多个IP

时间:2017-02-14 18:17:19

标签: python pcap dpkt

我是Python和dpkt模块的新手,需要一些帮助。我尽可能多地研究这个问题,但无济于事。我的经理要我创建一个解析PCAP文件的程序,并将IP地址写入文本文件,而不管流量类型(HTTP,FTP等等)如何。我已经找到了基础知识(因为示例代码是在线发布的),但我不知道如何解析.pcap文件中的第一个条目。

我得到的最接近的是尝试使用“zip”命令,但这不起作用,我无法弄清楚如何打印出多个IP,这是令人沮丧的。有人能给我任何指示吗?我并不反对使用其他模块,如scapy,如果这样可以使这项任务更容易。

1 个答案:

答案 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)