2017-01-19 4 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 импорта * а = [] Защиту print_summary (ПКТ): спорт = [пкт [TCP] .sport] для я в спорте: a.append (спорт) Распечатайте сопение (offline = "/ root/ip2.pcap", prn = print_summary, count = 5) – 445

+0

Для приведенного выше кода я получаю выход как [[27887]] [[27887], [49792]] [[27887] , [49792], [60476]] [[27887], [49792], [60476], [52345]] [[27887], [49792], [60476], [52345], [22070]] – 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) 
Смежные вопросы