使用python创建scapy中的协议列表和src,dst IP

时间:2015-07-03 14:04:46

标签: python list parsing 2d scapy

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

我正在使用scapy,这是我迄今为止所使用的代码。它没有工作和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()

1 个答案:

答案 0 :(得分:1)

也许是因为你从循环中返回IPList,所以只要它追加一行,它就会返回它,而没有机会检查更多的行,你可能只想返回列表在函数的末尾,在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]

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