使用 python 在 scapy 中创建协议和 src、dst IP 列表

create list of protocols and src,dst IP in scapy using python

我想创建和访问从 pcap 文件解析的 3 维值列表,这样每行包含 3 个值: 第 1 行 = [协议][源 IP][目标 IP].

我正在使用 scapy,这是我目前使用的代码。它是 obv 不工作,spittin gout 只有单行结果:

pkts=rdpcap("conf.pcap")

def parsePcap():
  IPList = []
  count=0
  for pkt in pkts:
        #print pkt.summary()
        if pkt.haslayer(IP):
                proto = pkt.getlayer(IP).proto
                x = pkt.getlayer(IP).src
                y = pkt.getlayer(IP).dst
                IPList[count].append((proto,x,y))
                count+=1
                return IPList[count]


parsePcap()

可能是因为您在循环内 returning IPList,所以一旦它附加了一行,它就 returns 了,没有机会检查对于更多行,您可能希望 return 仅在函数末尾 for 循环之外的列表。

例子-

def parsePcap():
  IPList = []
  count=0
  for pkt in pkts:
        #print pkt.summary()
        if pkt.haslayer(IP):
                proto = pkt.getlayer(IP).proto
                x = pkt.getlayer(IP).src
                y = pkt.getlayer(IP).dst
                IPList[count].append((proto,x,y))
                count+=1
  return IPList[count]

此外,您的缩进似乎不正确,但我希望这只是一个复制粘贴问题。