На эхо-запрос Scapy ICMP (Ping) нет ответа, в то время как Ping из командной строки получает ответы - PullRequest
0 голосов
/ 24 марта 2020

Я использую командную строку Windows 10 для проверки связи с устройством, которого нет в моей локальной сети. Я использую VPN-соединение для связи с этим устройством. Устройство отвечает на все запросы ping, которые я отправляю из командной строки.

Но когда я отправляю эхо-запросы ICMP со scapy, я не получаю никакого ответа. Единственное различие между пингом командной строки и пингом scapy заключается в том, что последний не заполняет поля «Идентификатор» и «Последовательность» пакета ICMP (значение по умолчанию, вероятно, равно 0 в обоих полях).

Это мой python код:

from scapy.all import IP, ICMP, sr1

reply = sr1(IP(dst=dst_ip)/ICMP())

Я пробовал оба запроса ping с отключенным брандмауэром windows.

Что может быть не так? Как я могу получить ответ с пингом?

1 Ответ

1 голос
/ 24 марта 2020

Scapy может выбрать неправильный интерфейс / маршрут.

Я бы запустил sr1 с параметром iface и предоставил явное имя интерфейса. Scapy имеет функцию get_if_list() для отображения списка сетевых интерфейсов, но на Windows это может быть иначе. Видя, что вы используете Windows, вам, возможно, придется использовать «значимое имя» ie «Сетевое подключение 1». Вот полезная ссылка на всякий случай: Python netifaces and scapy: Получение значимых имен интерфейсов и полных IP-адресов- / Netmask-Information

...