2015-07-03 43 views
0

我想要創建並訪問從pcap文件解析出的值的三維列表,使得每行包含3個值: row 1 = [protocol] [來源IP] [目標IP]。創建協議列表和src,使用python在scapy中創建dst IP

我使用scapy,這裏是我迄今爲止工作過的代碼。這OBV沒有工作,吐口水痛風僅單列結果:

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

也許是因爲你是如此,只要它附加一個行返回從內環路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] 

此外,您的壓痕似乎過,但我希望這只是一個複製粘貼問題。