首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Windows上使用带有npcap的替罪羊

在Windows上使用带有npcap的替罪羊
EN

Stack Overflow用户
提问于 2021-10-11 15:36:32
回答 1查看 850关注 0票数 0

我在Windows 11上使用了替罪羊2.4.5和Python3.9.5,我的npcapVersion1.55安装。

我有一些Wireshark数据包捕获,我正在尝试使用替罪羊的嗅探功能,并过滤出各种数据包。

但是,当我将filter="udp"与sniff一起使用时,会发现tcpdump不可用的例外情况。

下面是我目前正在尝试使用的脚本。

代码语言:javascript
复制
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()

然而,我得到了这个例外:

代码语言:javascript
复制
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来使用替罪羊嗅探吗?

EN

回答 1

Stack Overflow用户

发布于 2022-03-02 10:13:28

问题不在于过滤器,而是嗅探函数中的“脱机”选项。您可以执行实时数据包嗅探,或者使用rdpcap()函数首先在内存中加载pcap,然后执行您想做的事情。

代码语言:javascript
复制
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将不会占用任何其他内存。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69528883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档