Python / Scapy:仅嗅探传入的数据包

时间:2014-07-09 22:51:05

标签: python scapy

我可以只在Scapy中嗅闻传入或仅传出的数据包吗?

不在数据包字段上添加过滤器。

3 个答案:

答案 0 :(得分:1)

简答:不。 Scapy的嗅探功能不区分传入和传出的数据包。如果要根据源mac进行过滤,可以执行以下操作:

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

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

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

答案 1 :(得分:0)

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

然而,你绝对可以嗅到传入和传出。我不知道有办法专门接收传入或传出,但我相信你可以过滤你的结果。或者,如果您愿意承担更大的任务,您可以编辑Scapy并创建自己的嗅探器,只需要一个或另一个。

答案 2 :(得分:0)

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