隐藏Scapy IPv6警告信息

4 投票
3 回答
14619 浏览
提问于 2025-04-18 13:45

我试了很多次想要隐藏这个东西,但都没成功。有没有人能帮帮我?

我已经尝试过 -

from scapy.all import *
import logging
logging.getLogger("scapy.runtime").setLevel(logging.ERROR)

但是控制台上还是出现同样的警告。

WARNING: No route found for IPv6 destination :: (no default route?)

顺便说一下,我是在OS Mavericks上用Python 2.7和Scapy。

3 个回答

-1

我知道这个问题已经有点久了,但我可能找到了一个不错的解决办法。你是在构建IPv6数据包吗?如果不是,那你可以这样做,而不是:

from scapy.all import *

可以使用:

from scapy.layers.inet import IP

问题在于有两种IP类型,一个是来自 scapy.layers.inet 的,另一个是来自 scapy.layers.inet6 的。如果你使用前者的导入语句,你会同时导入这两种类型,即使你只是在构建版本4的数据包。

以上都是假设你只打算使用IPv4,我想这应该是你的情况。

4

如果你想在scapy中禁用IPv6,但又想保留警告信息(这是个好主意),可以使用下面的代码:

from scapy.config import conf
conf.ipv6_enabled = False
from scapy.all import *

你可以在scapy.all的源代码中找到这个小秘密。

9

你需要先导入日志功能,并调整日志信息的设置。

现在发生的情况是,你把 scapy 导入到你的代码中,触发了一个错误,然后才去改变日志的设置。

import logging
logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
from scapy.all import *

撰写回答