Python/Scapy:只嗅探传入的包

2024-10-01 09:30:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我能嗅出只有传入或传出的包裹吗?在

没有在包字段上添加过滤器。在


Tags: 过滤器包字
3条回答

sniff()支持所有L2socket参数。一个这样的参数是filter,它接受一个BPF过滤器http://biot.com/capstats/bpf.html。在某些情况下,这包括“传入”筛选器。在

Scapy并不总是表现最好:http://askldjd.wordpress.com/2014/01/15/a-reasonably-fast-python-ip-sniffer/

不过,你绝对可以嗅出传入和传出。我不知道一种方法,只接受传入或传出的具体,但我相信你可以过滤你的结果。或者,如果你愿意承担更大的任务,你可以编辑Scapy,创建你自己的嗅探器,只接受其中一个。在

简单回答:不。Scapy的sniff函数不区分传入和传出的数据包。如果要基于源mac进行过滤,可以执行以下操作:

MYMAC = "12:34:56:78:90:99"

def isNotOutgoing(pkt):
    return pkt[Ether].src != MYMAC

sniff(iface="eth0", lfilter=isNotOutgoing)

相关问题 更多 >