Python scapy sprintf 语法

Python scapy sprintf syntax

ans,uans=srp(Ether(...)/ARP(pdst="x.x.x.x"),...)
for snd,rcv in ans:
  return rcv.sprintf(r"%Ether.src%") 

假设我使用上述方法找到了 IP 的 mac 地址。 sprintf() 中的 r 是什么意思,这里返回什么?这可能是一个愚蠢的问题,但我找不到答案,而且我是 python 的新手。这就是我在这里发布它的原因。

r前缀与scapy无关。 r 表示原始字符串。这意味着字符串中的反斜杠被视为文字字符。参见 python docs

例如:

>>> print(r'\n')
\n

使用 help(Packet.sprintf) 或在线文档查看 sprintf 文档:https://scapy.readthedocs.io/en/latest/api/scapy.packet.html#scapy.packet.Packet.sprintf

sprintf 是一个以人类可读形式格式化数据包数据的函数。