我想创建并访问从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()
答案 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]
此外,您的缩进似乎已关闭,但我希望这只是一个复制粘贴问题。