我正在尝试设置一个 scapy 数据包过滤器,以仅捕获来自特定源或 IP 地址且发往端口 23 的数据包。 这是我到目前为止的语法,但我认为这是错误的,因为我认为这种语法告诉 scapy 只捕获进入此 IP 地址的数据包。
pkt = sniff(filter='host 8.8.8.8 and port 23', prn=print_pkt)
我认为这种语法没有做我需要它做的事情。 我尝试搜索语法,告诉 scapy 只捕获来自 8.8.8.8 的数据包,但这是我能找到的全部内容,我认为它告诉 scapy 捕获发送到 8.8.8.8 的数据包。 这是对的吗?
Scapy 过滤器来自一个名为 BPF 的类型,您可以在此处查看语法。
就你而言,我认为你想做的是——
filter='src host 8.8.8.8 and dst port 23'
您的原始语法无法区分源和目标,因此它将过滤来自/到 ip8.8.8.8
和来自/到端口 23 的数据包。