我正在尝试嗅探网络上的ARP流量,并且为此目的使用scapy.sniff()。以下是我为此编写的代码。
#! /usr/bin/python3
from scapy.all import *
import logging as log
def arp_display(pkt):
#if pkt[ARP].op == 1: #who-has (request)
#return f"Request: {pkt[ARP].psrc} is asking about {pkt[ARP].pdst}"
if pkt[ARP].op == 2: #is-at (response)
return f"*Response: {pkt[ARP].hwsrc} has address {pkt[ARP].psrc}"
sniff(prn=arp_display, filter="arp", store=0, iface='eth0', count=5)
问题是,除非我在'sniff'函数中定义了'count'参数,否则它不会捕获流量。并且生成的ARP请求应大于等于“ count”,否则不显示任何内容。它想连续监视网络上的ARP请求。