Как я могу использовать модуль scapy, чтобы отправить запрос и принять три ответа? - PullRequest
0 голосов
/ 22 февраля 2019

Я пытаюсь использовать модуль scapy, чтобы запросить у сервера 4.2.2.4 некоторые URL-адреса URL.

Большинство запросов на запросы получат только один ответ, который может иметь один или несколько 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 голосов
/ 22 февраля 2019

Привет,

Вы можете использовать аргумент ключевого слова multiple в sr():

sr([...], multiple=True)
...