python - 将 Packet.show() 表示形式放入字符串变量中

标签 python string packet scapy

<分区>

是否有可能将 Packet.show() 给我的表示放入字符串变量中?

像这样

representation = somePacket.show()
print representation # will print nothing

所以我可以存储它以备后用,并在需要时打印出来?

最佳答案

.show() 只是打印到标准输出。您需要将 sys.stdout 替换为可以保存写入字符串的对象。

例如,在下面的例子中,io.BytesIO用于捕获写入的字符串:

>>> import sys
>>> from io import BytesIO
>>> from scapy.all import Ether, IP, ICMP, Net
>>> packets = Ether()/IP(dst=Net("google.com/30"))/ICMP() 
>>> old_stdout, sys.stdout = sys.stdout, BytesIO()
>>> try:
...     packets.show()
...     output = sys.stdout.getvalue()  # retrieve written string
... finally:
...     sys.stdout = old_stdout  # Restore sys.stdout
... 
>>> output[:10]
'###[ Ether'

关于python - 将 Packet.show() 表示形式放入字符串变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35500735/

相关文章:

Python Twisted 代理 - 如何拦截数据包

php - 在 PHP 中接收 UDP 数据包数据报

python - 找到包含给定坐标的多边形并找到多边形的坐标(python opencv)

python - 如何比较pandas中的多索引数据帧中的数据并选择最大的一个?

c++ - 从不遵循特定格式的字符串中提取数字和字符? (后缀计算器)

Python 无法从返回的字符串中删除空格

缓存从 pcap 捕获的数据包

python - 如何将 Python 中的日期格式更改为西类牙语格式

python - 随机数据生成器在 python 中对正则表达式进行数学运算

javascript - 如何使用 jQuery 或 JavaScript 替换两个 XML 标签之间的文本?