我正在尝试使用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')))
我得到的结果(部分答案):
\ \ \
| ### [DNS资源记录] ###
| rrname ='facebook.com。'
......
。 rdata ='173.252.103.64'
我通过wireshark获得的结果:
嗨,
您可以在multiple
中使用sr()
关键字参数:
sr([...], multiple=True)