2017-01-19 122 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)