我可以只在Scapy中嗅闻传入或仅传出的数据包吗?
不在数据包字段上添加过滤器。
答案 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。在某些情况下,这包括“传入”过滤器。