Простой скрипт Scapy не отправляет пакет - PullRequest
0 голосов
/ 05 октября 2019

У меня самый простой скрипт из всех возможных, но он не работает. Пожалуйста, помогите:

import scapy.all as scapy

def scan(ip):
    scapy.arping(ip)
scan("192.169.11.117")

При запуске я получаю это:

Begin emission:
Finished sending 1 packets.

Received 0 packets, got 0 answers, remaining 1 packets

Как я могу это исправить и получить ответы?

Ответы [ 2 ]

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

Проблема # 1

Вероятно, вы используете неправильную подсеть. Частные подсети ( RFC 1918 ):

  • 10.0.0.0 / 8
  • 172.16.0.0 / 12
  • 192.168.0.0 / 16

Вы, вероятно, хотели это сделать, это частный IP-адрес

scan("192.168.11.117")

, а не этот

scan("192.169.11.117")

, который является публичным IP-адресом. Также возможно, что вы владеете этой общедоступной подсетью, и в этом случае это не имеет значения.

Проблема # 2

Возможно, удаленный хост не отвечает, поскольку он не существует по этому адресу. Убедитесь, что дважды проверьте, что цель, IP-адрес которой вы используете в arping, подключен и доступен.

Вы можете проверить сопоставления arp в * nix и windows, используя arp -a в командной строке

$ arp -a

? (192.168.1.111) at 0:1b:78:20:ee:40 on en0 ifscope [ethernet]
? (192.168.1.112) at a4:77:33:88:92:62 on en0 ifscope [ethernet]
? (192.168.1.117) at 6c:33:a9:42:6a:18 on en0 ifscope [ethernet]
...

для целевого IP, чтобы убедиться, что scapy arping должен разрешить.


Если вы пытаетесь выполнить сканирование ARP, то вам следуетпосмотрите на ответ Cukic0.

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

Это не так, как вы его используете.

Посмотрите на документ: https://scapy.readthedocs.io/en/latest/usage.html#arp-ping

arping("192.169.11.*")

Вы должны посмотреть, что такое сканирование ARP. Вы не просто отправляете пакет на один IP-адрес, но и на диапазон (используя подмаску).

...