2017-01-19 121 views
0
from scapy.all import * 
def print_summary(pkt): 
    for i in pkt: 
      sport=[pkt[TCP].sport] 
      if (sport[i]!=sport[i+1]): 
      packet=sport 
      print packet  

sniff(offline="/root/ip2.pcap",prn = print_summary)  
+1

你能寫一些你想要的描述或輸出,或者至少有一些錯誤嗎? –

+0

從scapy.all進口* 一個= [] DEF print_summary(PKT): 運動= [PKT [TCP]。運動] 對於i中的運動: a.append(運動) 打印一個 嗅( offline =「/ root/ip2.pcap」,prn = print_summary,count = 5) – 445

+0

對於上述代碼,我得到的輸出爲[0128] [49792],[60476]] [[27887],[49792],[60476],[52345]] [[27887],[49792],[60476],[52345], – 445

回答

0

您可以使用rdpcap讀取.pcap文件,創建一個列表,並在檢查它是否已經存在或不存在後,將端口號追加到列表中。

from scapy.all import * 

pcap = rdpcap('test_pcap.pcap') 
ports = [] 

for pkt in pcap: 
    if pkt.haslayer(TCP): 
     if pkt.sport in ports: 
      pass 
     else: 
      ports.append(pkt.sport) 

print(ports)