我在我正在构建的工具中以非交互方式(即作为库)使用 scapy 2.3.1-dev。我想获取有关数据包的一串人类可读的信息,例如您从scapy.all.Packet.show()
。我尝试过使用所有三种方法(packet.show()
, packet.show2()
and packet.display()
)提供信息,但这些都没有返回任何内容,而是打印出我想要的信息。
另外,返回的信息packet.__repr__()
还不够。
是否有任何函数/方法可以以相同的方式返回格式良好的文本,例如packet.show()
打印它们?如果没有,是否有某种方法可以捕获/拦截输出show()
,在打印到控制台之前?
我知道我可以使用来自的信息进行自己的字符串格式化packet.fields
,但我试图避免这样做。
您可以使用show()
方法通过show(dump=True)
,然后它会返回字符串给你。
为什么我知道这一点,因为我读过代码show()
method.
这是代码:
def main():
packet = scapy.rdpcap('1.pcap')
for p in packet:
a = p.show(dump=True)
print type(a)
print a
exit(0)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)