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)