Время между получением пакетов в Scapy

Я использую Scapy для проекта, и одно из требований заключается в том, что мне нужно обнюхивать пакеты и отправлять запросы, содержащие данные из каждого пакета, на веб-сайт, чтобы получить определенные данные. Пока нет проблем.

Есть одна загвоздка: я могу отправлять на сайт только определенное количество запросов в час, иначе он меня блокирует. Мне нужно отправлять каждый запрос в тот момент, когда я обнюхиваю новый пакет.

Вот что у меня есть на данный момент (не нужно слишком углубляться в то, что здесь):

from scapy.all import * . . . packets = sniff(lfilter = is_valid_ip, prn = print_the_ip_that_is_not_me)

Есть ли способ задержать или подождать между каждым пакетом без добавления внешней функции? Я знаю, что могу просто добавить sleep() в одну из функций (is_valid_ip или print_the_ip_that_is_not_me), но сейчас я только ищу что-то, что можно поместить внутрь самой sniff().

Заранее спасибо.


person dor barlev    schedule 02.08.2017    source источник


Ответы (1)


Сам scapy предоставляет возможность задержки при отправке пакета. Вы можете выбрать любое значение inter, и оно обеспечит задержку в секундах. Например, если вы хотите отправить пакет на уровне 3.

send(pkt, inter=0)

или вы можете сделать это для слоя 2.

sendp(x, inter=0)
person Kashif Ahmad    schedule 16.10.2017