嗅探来自特定 IP 的 scapy DNS 数据包

sniff with scapy DNS packet from specific IP

我想用 scapy 嗅探 DNS 数据包,他们的 dst 或他们的 src 是 ip“31.13.93.36”。 我该怎么做?

sniff(filter="dst <ip addr>")

这是一种方法:

>>> a=sniff(filter='ip host 8.8.8.8', lfilter=lambda x: x.haslayer(DNS), count=2)
>>> a[1][DNS][DNSRR].rrname
'google.com.'
>>> a[1][DNS][DNSRR].rdata
'172.217.0.110'