gpt4 book ai didi

Python 在使用 Scapy 创建空 pcap 文件时抑制警告

转载 作者:行者123 更新时间:2023-11-28 22:45:17 27 4
gpt4 key购买 nike

我想创建一个空的 pcap 文件。我正在使用“Scapy”的 wrpcap 模块。但是 wrpcap 只接受 2 个参数:一个是 文件名,另一个是 数据包列表,例如:

wrpcap("my.pcap",my_pkt_list)

因为我想把它设为空,而且我没有数据包列表,所以我正在向 pcap 文件写入一个空字符串。它正在创建文件,但也会给出警告和错误,因为字符串与数据包类型不匹配。

WARNING: PcapWriter: unknown LL type for str. Using type 1 (Ethernet)
Traceback (most recent call last):
File "test.py", line 35, in <module>
wrpcap("pcap/FU.pcap","")
File "/usr/lib/python2.7/site-packages/scapy/utils.py", line 466, in wrpcap
PcapWriter(filename, *args, **kargs).write(pkt)
File "/usr/lib/python2.7/site-packages/scapy/utils.py", line 646, in write
self._write_packet(pkt)
File "/usr/lib/python2.7/site-packages/scapy/utils.py", line 688, in _write_packet
sec = int(packet.time)
AttributeError: 'str' object has no attribute 'time'

目前,我可以使用 try and except 来抑制错误,但无法抑制警告。

代码

from scapy.all import *
try:
wrpcap("my.pcap","")
except:
pass

警告仍然存在:

WARNING: PcapWriter: unknown LL type for str. Using type 1 (Ethernet)

如何从 python 代码中抑制它?

最佳答案

Python 在标准库中有一个内置方法来抑制警告:

import warnings
warnings.simplefilter("ignore", Warning)

您可以阅读有关警告库的更多信息 in the docs .

编辑

看起来 scapy 使用 warnings 库来生成它。相反它logs them to a logger名为 scapy.runtime,级别为 warning。显然有一些默认的日志记录配置将其回显到 stdout。您可以为 scapy.runtime 添加自己的日志处理程序来抑制它们。

关于Python 在使用 Scapy 创建空 pcap 文件时抑制警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28736188/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com