Python/Scapy: 只嗅探入站数据包
我可以在Scapy中只监听进来的数据包或者只监听出去的数据包吗?
而不需要在数据包的字段上添加过滤器。
4 个回答
-1
Scapy并不总是表现得最好:http://askldjd.wordpress.com/2014/01/15/a-reasonably-fast-python-ip-sniffer/
不过,你绝对可以监控进来的和出去的数据。我不知道有没有办法只专门监控进来的或出去的,但我相信你可以对结果进行过滤。或者,如果你愿意接受更大的挑战,你可以修改Scapy,自己创建一个只监控其中一个方向的数据的工具。
0
sniff()函数支持所有L2socket的参数。其中一个参数是filter,它需要一个BPF过滤器,具体可以参考这个链接http://biot.com/capstats/bpf.html。在某些情况下,这个过滤器可以包括“incoming”过滤器。
3
简单来说:不可以。Scapy的sniff函数无法区分进来的和出去的数据包。如果你想根据源MAC地址来过滤数据包,可以这样做:
MYMAC = "12:34:56:78:90:99"
def isNotOutgoing(pkt):
return pkt[Ether].src != MYMAC
sniff(iface="eth0", lfilter=isNotOutgoing)