【发布时间】:2020-01-15 09:28:22
【问题描述】:
当打印带有.summary 字段的某些IP 数据包时,会显示值而不是字段字典的键。例如我们有一个名为msg_type的字段,当使用.summary时,会打印数据包字段的值(NOTIFICATION,REQUEST..)但是当使用packet.msg_type时,字段的键( 2,3...) 已显示。
如何使用第二种方法打印值?
【问题讨论】:
当打印带有.summary 字段的某些IP 数据包时,会显示值而不是字段字典的键。例如我们有一个名为msg_type的字段,当使用.summary时,会打印数据包字段的值(NOTIFICATION,REQUEST..)但是当使用packet.msg_type时,字段的键( 2,3...) 已显示。
如何使用第二种方法打印值?
【问题讨论】:
msg_type是ByteEnumField,可以这样访问值类型——
from scapy.contrib.automotive import someip
s = someip.SOMEIP(msg_type=0x0)
type_val = someip.SOMEIP.msg_type.i2s[s.msg_type]
和输出-
In [15]: type_val
Out[15]: 'REQUEST'
【讨论】:
s.sprintf("%msg_type%")