我在Windows 11上使用了替罪羊2.4.5和Python3.9.5,我的npcapVersion1.55安装。
我有一些Wireshark数据包捕获,我正在尝试使用替罪羊的嗅探功能,并过滤出各种数据包。
但是,当我将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:\Python39\lib\site-packages\scapy\sendrecv.py", line 1263, in sniff
sniffer._run(*args, **kwargs)
File "C:\Python39\lib\site-packages\scapy\sendrecv.py", line 1072, in _run
sniff_sockets.update((PcapReader(
File "C:\Python39\lib\site-packages\scapy\sendrecv.py", line 1074, in <genexpr>
tcpdump(fname,
File "C:\Python39\lib\site-packages\scapy\utils.py", line 2095, in tcpdump
raise Scapy_Exception(
scapy.error.Scapy_Exception: tcpdump is not available你知道如何在Windows上用npcap而不是tcpdump来使用替罪羊嗅探吗?
发布于 2022-03-02 10:13:28
问题不在于过滤器,而是嗅探函数中的“脱机”选项。您可以执行实时数据包嗅探,或者使用rdpcap()函数首先在内存中加载pcap,然后执行您想做的事情。
from scapy.all import rdpcap
from scapy.layers.inet import UDP
scapy_cap = rdpcap("responses.pcap")
for pck in PCAP:
if pck[UDP]:
print(pck.summary())这不是抛出tcpdump异常的解决方案,而是更好地解决从pcap中获取某些内容的方法。请记住,如果您尝试用rdpcap()加载内存,那么大型pcap将不会占用任何其他内存。
https://stackoverflow.com/questions/69528883
复制相似问题