Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
比较python中数据包的端口号_Python_Scapy - Fatal编程技术网

比较python中数据包的端口号

比较python中数据包的端口号,python,scapy,Python,Scapy,您可以使用rdpcap读取.pcap文件,创建列表,并在检查端口号是否已存在后将其追加到列表中 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(of

您可以使用rdpcap读取.pcap文件,创建列表,并在检查端口号是否已存在后将其追加到列表中

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)     

你能写一些你想要的描述或输出,或者至少写一些错误吗?来自scapy.all import*a=[]def print_summary(pkt):sport=[pkt[TCP].sport]对于运动中的i:a.append(sport)打印嗅探(offline=“/root/ip2.pcap”,prn=print_summary,count=5)用于上述代码,我得到的输出是[[27887][[27887],[49792][[27887],[49792],[60476][[27887],[49792],[60476],[52345][[27887],[49792],[60476],[52345],[22070]。它每次都在追加和打印。如何在所有迭代之后打印,即仅打印最后附加的数据
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)