我正在尝试使用 scapy 模块向 4.2.2.4 服务器询问一些 url IP 地址。
大多数查询请求只会得到一个答复,该答复可能有一个或多个IP地址。但“facebook.com”不同。服务器会给我三个答案,每个答案都有一个IP地址。
为什么会发生这种情况?如何在我的 python 程序中获得所有三个答案?我尝试了 sr() 和 sr1() 函数,但它们都只得到一个答案。
我的代码:
from scapy.all import *
url = 'facebook.com'
server = '4.2.2.4'
result1, unanswer = sr(IP(dst=server) / UDP() / DNS(qd=DNSQR(qname=url, qtype='A', qclass='IN')))
result2 = sr1(IP(dst=server) / UDP() / DNS(qd=DNSQR(qname=url, qtype='A', qclass='IN')))
我得到的结果(部分答案):
\an \
|###[ DNS Resource Record ]###
| rrname = 'facebook.com.'
......
| rdata = '173.252.103.64'
我用wireshark得到的结果:
最佳答案
你好,
您可以在 sr()
中使用 multiple
关键字参数:
sr([...], multiple=True)
关于python - 如何使用 scapy 模块发送请求并接受三个答案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54827924/