繁体   English   中英

如何使用Scapy计数数据包

[英]How to count packet using scapy

我在计数船上的新数据包时遇到问题。 这意味着我尝试计算每个嗅探到的数据包。 我是这样写的,但是在输出中我有一个新的数据包,在他下面总是有一个。

我当前的代码是:

def print_packet(packet):
    count = 0
    ip_layer = packet.getlayer(IP)
    print("[!] New Packet: {src} -> {dst}".format(src=ip_layer.src, dst=ip_layer.dst))
    count += 1
    print(count)

print("[*] Start sniffing...")
sniff(iface=interface, filter="ip", prn=print_packet)
print("[*] Stop sniffing"

您的count变量在print_packet函数中是本地的。 您应该在该函数之外定义全局count

count = 0

def print_packet(packet):
    global count
    ip_layer = packet.getlayer(IP)
    print("[!] New Packet: {src} -> {dst}".format(src=ip_layer.src, 
              dst=ip_layer.dst))
    count += 1
    print(count)

print("[*] Start sniffing...")
sniff(iface=interface, filter="ip", prn=print_packet)
print("[*] Stop sniffing")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM