Наш скрипт уже умеет получать, обрабатывать и выводить необходимые нам данные. Сейчас займемся тем, что сделаем вывод более удобочитаемым.
Уберем информацию о том, сколько пакетов было отправлено и на сколько из них был получен ответ. Для этого в srp() используется параметр verbose. Установим его в значение verbose = False
answer_yes = scapy.all.srp(arp_request_broadcast, timeout=1, verbose = False)[0]
Делаем схожую шапку с netdiscover :
print ('IP-Adress\t\t\tMAC-Adress\n----------------------------------------------')
здесь \t - символ табуляции, а \n - перевод строки
вывод становится таким:
Остается сделать чтобы ip-адрес и соответствующий ему MAC-адрес выводились в одной строке. Колдуем с принтами:
print (element[1].psrc + '\t\t\t' + element[1].hwsrc)
и получаем:
Определять вендора мы не будем, так как netdiscover пытается "угадать" его, а не оперирует достоверными данными.
Итак, на данном этапе мы получили полноценный аналог netdiscover , только он работает под любой операционной системой.
Продолжение следует….
Конструктивная критика приветствуется.
Эта статья была полезной? Поставьте лайк и поделитесь с друзьями в социальных сетях!
Оставьте отзывы и замечания!
Предыдущая часть:
Программируем сканер локальной сети. Часть 5
База знаний:
Методы: .summary(), srp(), sr()
Модули: scapy
Понятия: Протокол ARP