Функция Scapy ARP не дает правильного вывода при запуске - PullRequest
0 голосов
/ 06 октября 2019

У меня есть простой сценарий:

import scapy.all as scapy

def scan(ip):
    arg = scapy.ARP(pdst=ip)
    print(arg.summary())
scan("192.168.11.0/24")

Но когда я запускаю этот сценарий, я получаю вывод:

ARP who has ?? says ??

Обычно сводка дает мне 2 IP-адреса, где2 знака вопроса, но по какой-то причине это не так. Также я сделал сетевой сканер, и он вчера работал нормально и вернул мне все ip и mac адреса в сети, но сегодня я не могу передать диапазон (например: «192.168.11.0/24»), когда ясделать единственный вывод, который я получаю:

IP          MAC Address
----------------------------------------------------
192.168.11.1        08:02:8e:a1:6a:d0

Даже если в сети больше устройств. Что-то не так с scapy? Если да, то как мне удалить и переустановить его, потому что я уже выполнил команду pip uninstall scapy и pip install scapy и ничего не работает до сих пор.

1 Ответ

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

Вы на самом деле ничего не делаете со своим сценарием. Ваша функция включает arg = scapy.ARP(pdst=ip), которая создает пакет ARP. Чтобы отправить его, используйте sr или sr1 . Существуют также однострочные примеры ARP, которые охватывают пинг ARP . Применяется здесь,

from scapy.all import *

def arp_scan(ips):
    resp = arping(ips)
    print(resp)
arp_scan("192.168.11.0/24")

Мы получим вывод, похожий на

Begin emission:
*Finished sending 256 packets.

Received 1 packets, got 1 answers, remaining 255 packets
  9c:5c:12:ca:7b:6f 192.168.11.1
...