Используйте scapy с npcap в Windows

#scapy #npcap

Вопрос:

Я использую scapy 2.4.5 с Python 3.9.5 в Windows 11. У меня установлена npcap версии 1.55.

У меня есть несколько захватов пакетов Wireshark, которые я пытаюсь использовать функцию sniff scapy для файла и отфильтровывать различные пакеты.

Однако, когда я использую filter=»udp» с sniff, я получаю исключение о недоступности tcpdump.

Ниже приведен сценарий, который я в настоящее время пытаюсь использовать.

 from scapy.all import *


conf.use_pcap = True

pcap_file_path = r"C:8OCT21_DDL_00001_20211008214804"

packets = sniff(offline=pcap_file_path, 
                count=10,
                filter="udp")
packets.summary()
 

Однако я получаю это исключение:

 File "C:Python39libsite-packagesscapysendrecv.py", line 1263, in sniff
    sniffer._run(*args, **kwargs)
  File "C:Python39libsite-packagesscapysendrecv.py", line 1072, in _run
    sniff_sockets.update((PcapReader(
  File "C:Python39libsite-packagesscapysendrecv.py", line 1074, in <genexpr>
    tcpdump(fname,
  File "C:Python39libsite-packagesscapyutils.py", line 2095, in tcpdump
    raise Scapy_Exception(
scapy.error.Scapy_Exception: tcpdump is not available
 

Есть идеи о том, как использовать scapy sniff в Windows с npcap вместо tcpdump?

Комментарии:

1. Похоже, это связано с этим: github.com/secdev/scapy/issues/2223 . Я бы разместил ваш вопрос там, так как ошибка может появиться снова. Вы также можете попробовать 2.4.4, где было выдвинуто исправление.