导入模块时抑制 scapy 警告消息

2024-01-12

我正在编写一个小脚本,它使用 scapy 收集一些信息,然后返回一些 xml 代码,我将其传递到 metasploit 的 xmlrpc 接口。我希望我的脚本只返回 xml,并且没有其他警告等。

我可以通过添加选项来抑制大多数 scapy 输出verbose=0到我的 sr1 命令。在每次输出之前我仍然得到的,并且我假设它在加载模块时返回此警告是:

警告:找不到 IPv6 目标的路由 ::(没有默认路由?)

我可以通过像这样调用我的脚本来轻松重定向该输出:

 ./myscript 2> /dev/null

但我想将其纳入脚本中。为此,我找到了一个提示,可以有一个 NullDevice 类,它不写任何内容,然后设置sys.stderr该 NullDevice 类的实例化。

不幸的是,这只在我加载模块后才起作用,因此我仍然有警告,并且它仅重定向发送到 stderr 的任何后续消息。

如何禁止该警告消息出现在我的屏幕上?


您可以通过添加以下内容来消除 scapy 的警告:

logging.getLogger("scapy.runtime").setLevel(logging.ERROR)

before导入 Scapy。这将抑制所有严重程度低于错误消息的消息。


例如:

import logging
logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
from scapy.all import *
...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

导入模块时抑制 scapy 警告消息 的相关文章

随机推荐