Доброго время суток, уважаемый читатель! На данный момент мы собрали пакеты-запросы для отправки на широковещательный адрес. Сейчас мы разберемся как отправлять эти пакеты, а также как принимать и обрабатывать ответы. Для того, чтобы отправить пакет, в scapy предусмотрены функции sr() и srp(). sr() в нашем конкретном примере использовать не получиться, т.к адрес широковещательного канала в Ether() мы прописали вручную, а sr() этого не позволяет. Поэтому используем srp() : scapy.all.srp(arp_request_broadcast)...
В первой части мы создали простейший вариант сканера локальной сети, однако его вывод значительно отличается от вывода netdiscover. Сейчас мы глубже копнем в модуль scapy и посмотрим в каком виде посылаются ARP-запросы, какие поля данных при этих запросах мы можем использовать. Создаем экземпляр ARP-запроса мы можем получить с помощью метода модуля scapy - scapy.all.ARP(). Применив функцию summary() мы увидим, как выглядит сам ARP-запрос: summary() выводит нам следующее: Т.е. по ARP не форматированный экземпляр спрашивает: «who has 0...