scapy - srp не отправляет мой пакет на правильный сетевой интерфейс

Я работаю на машине с Windows 10 и использую scapy для какого-то проекта, над которым работаю.

Когда я использую функцию сниффинга для сниффинга пакетов из моего интерфейса Ethernet, он работает так, как ожидалось, но когда я использую srp1 для отправки пакета с того же интерфейса, он отправляет мой пакет через мой интерфейс vEthernet, а не через мой физический интерфейс Ethernet (так что пакет никогда не попадает в пункт назначения).

Вот мой код сниффа по сравнению с srp1:

a = sniff(count = 1, iface = "Ethernet")
p = srp1(pkt, iface = "Ethernet")

как вы можете видеть в обоих вызовах, я использую имя интерфейса "Ethernet".

Может кто-нибудь сказать мне, что делать, чтобы мой пакет отправлялся через Ethernet, а не через vEthernet?

1 ответ

Решение

Если вы откроете оболочку Scapy и наберете IFACES (Только для Windows ATM), вам будет показан точный список интерфейсов.

Затем вы можете использовать объект интерфейса, а не имя. (видетьhelp(IFACES) для различных служебных функций, таких как IFACES.dev_from_id()... чтобы получить это).

Пример:

from scapy.arch.windows import IFACES
a = IFACES.dev_from_id(5)
sr1(IP(dst="www.google.com")/ICMP(), iface=a)

См. Также /questions/49330122/identifikator-guid-nomera-interfejsa-windows-s-oshibkoj-valueerror-neizvestnyij/49330135#49330135

Другие вопросы по тегам