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

Python/Scapy:只嗅探传入的数据包,python,scapy,Python,Scapy,我可以在Scapy中只嗅探传入或传出的数据包吗 没有在数据包字段上添加过滤器。Scapy的性能并不总是最好的: 然而,你肯定可以嗅出传入和传出。我不知道有什么方法可以只接收传入或传出的数据,但我相信您可以过滤结果。或者,如果你愿意承担更大的任务,你可以编辑Scapy并创建自己的嗅探器,只接受其中一个 简短回答:不。Scapy的sniff函数不区分传入和传出的数据包。如果要基于源mac进行筛选,可以执行以下操作: MYMAC = "12:34:56:78:90:99" def isNotOutg

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


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

Scapy的性能并不总是最好的:


然而,你肯定可以嗅出传入和传出。我不知道有什么方法可以只接收传入或传出的数据,但我相信您可以过滤结果。或者,如果你愿意承担更大的任务,你可以编辑Scapy并创建自己的嗅探器,只接受其中一个

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

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

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

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

sniff()支持所有L2socket参数。其中一个参数是filter,它采用BPF过滤器。在某些情况下,这包括“传入”过滤器。

即使答案是好的,在未来考虑发布工作代码的样本,而不是链接。链接将来可能会断开;)要自动检索MAC地址,您可以执行嗅探(iface=“eth0”,lfilter=lambda pkt:pkt[Ether].src!=Ether().src)