我正在一个我正在构建的工具中使用scapy 2.3.1-dev非交互(即作为库)。我想得到一个关于包的人类可读信息字符串,比如您从scapy.all.Packet.show()
获得的信息。我试过使用所有三个提供信息的方法(packet.show()
,packet.show2()
和packet.display()
),但是没有一个返回任何信息,而是打印出我想要的信息。
此外,由packet.__repr__()
返回的信息还不够。
是否有任何函数/方法可以像packet.show()
那样返回格式良好的文本?如果没有,那么在将show()
的输出打印到控制台之前,是否有某种方法可以捕获/截取它?
我知道我可以使用packet.fields
中的信息进行自己的字符串格式化,但我试图避免这样做。
可能的方法之一是将
packet.show()
函数的输出重定向到变量capture
。以下代码提供了一个示例:程序输出为:
您可以通过
show(dump=True)
使用show()
方法,然后它将返回字符串。 为什么我知道,因为我读了show()
方法的代码。代码如下:
相关问题 更多 >
编程相关推荐