如何使用Scapy模块发送请求并接受三个答案?

时间:2019-02-22 13:11:14

标签: python python-3.x ip scapy

我正在尝试使用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资源记录] ###

     

| rrname ='facebook.com。'

     

......

     

| rdata ='173.252.103.64'

wireshark的结果是: The result I got with wireshark

1 个答案:

答案 0 :(得分:1)

嗨,

您可以在sr()中使用sr([...], multiple=True) 关键字参数:

different_locale