#python #scapy #packet
#python #scapy #пакет
Вопрос:
Я создал ARP-пакет в Scapy (используя Python), и я пытаюсь отправлять этот пакет снова и снова, без остановки, до получения и ответа от получателя, сохраняя ответ и выходя из цикла. Я безуспешно пытался найти его в Google. Поэтому я испытываю свою удачу здесь и буду рад получить идею, как сделать это эффективным способом. Спасибо!
Ответ №1:
sr1
Функция Scapy отправляет пакет и ожидает ответа не более timeout
нескольких секунд. Если ответ получен, sr1
возвращает полученный пакет, если таковой имеется, или None
иным образом. Таким образом, вы можете в принципе делать то, что хотите, используя этот цикл:
from scapy.all import ARP, sr1
loop = True
request = ARP(pdst="10.0.0.1")
while loop:
response = sr1(request, timeout=5)
if response is None:
print('no response after 5 seconds. retrying ...')
else:
loop = False
print('I got an answer:')
response.show()
Комментарии:
1. Вы также можете попробовать
srflood
: scapy.readthedocs.io/en/latest/api/scapy.sendrecv.html