Скрипт сетевого сканера, возвращающий вопросительные знаки - PullRequest
0 голосов
/ 23 октября 2019

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

Я не уверен, что было бы хорошим шагом для устранения неполадок в этой ситуации

#!/usr/bin/env python

import scapy.all as scapy


def scan(ip):
    arp_request = scapy.ARP(pdst=ip)
    broadcast = scapy.Ether(dst="ff:ff:ff:ff:ff:ff")
    arp_request_broadcast = broadcast/arp_request
    print(arp_request_broadcast.summary())

scan("10.0.0.1/24")

advenk@advenk:/media/root/Seagate/Tension/Github/Projects# python network_scanner.py
Ether / ARP who has ?? says ??
advenk@advenk:/media/root/Seagate/Tension/Github/Projects# python network_scanner.py
Ether / ARP who has ?? says ??

Почему мой ARPзапросы, возвращающие знаки вопроса вместо IP-адресов?

Ответы [ 2 ]

0 голосов
/ 26 октября 2019

Возможно, вы запускаете код с интерпретатором Python3. Если вы запускаете его с интерпретатором Python2, он должен работать.

0 голосов
/ 24 октября 2019

Scapy показывает вам, что он знает

Ваши запросы ARP возвращают знаки вопроса вместо IP-адресов, потому что вы их не отправили. В представленном коде вы создаете пакеты, а затем распечатываете их сводку. Если вы хотите отправить их, используйте одну из функций отправки , например srp. Чтобы увидеть все высокоуровневые функции, к которым у вас есть доступ, включая отправляющие, используйте lsc() в приглашении Scapy.

Используйте arping вместо

Для сканирования ARP (это то, что вы пытаетесь сделать), используйте вместо этого встроенную в Scapy arping . Моя текущая локальная сеть 192.168.1.0/24, поэтому я собираюсь использовать ее для демонстрации:

>>> arping("192.168.1.0/24")
Begin emission:
**********Finished sending 256 packets.
*
Received 11 packets, got 11 answers, remaining 245 packets
  00:2c:78:20:ee:40 192.168.1.48
  6c:34:ab:42:6b:18 192.168.1.67
  8c:f1:fe:81:36:90 192.168.1.162
  ...

(<ARPing: TCP:0 UDP:0 ICMP:0 Other:11>,
 <Unanswered: TCP:0 UDP:0 ICMP:0 Other:245>)
...