在 Scapy 中遍历图层的字段
Iterating over fields of a layer in Scapy
我想遍历 src
和 dst
等字段的名称并获取它们的值。我试过这个:
for field in pkt['Ethernet']:
print field
但我需要一个函数,它会给我一个包含字段名称及其值的字典,例如 -
{'dst':'00:0a:95:9d:68:16','src':'00:0a:95:9d:68:16','type':'tcp'}
首先从协议类型中获取所有字段名,然后使用getattr
从数据包/帧中获取值:
field_names = [field.name for field in Ether.fields_desc]
fields = {field_name: getattr(frame, field_name) for field_name in field_names}
fields
将等于:
{'dst': 'ff:ff:ff:ff:ff:ff', 'src': '00:00:00:00:00:00', 'type': 36864}
我想遍历 src
和 dst
等字段的名称并获取它们的值。我试过这个:
for field in pkt['Ethernet']:
print field
但我需要一个函数,它会给我一个包含字段名称及其值的字典,例如 -
{'dst':'00:0a:95:9d:68:16','src':'00:0a:95:9d:68:16','type':'tcp'}
首先从协议类型中获取所有字段名,然后使用getattr
从数据包/帧中获取值:
field_names = [field.name for field in Ether.fields_desc]
fields = {field_name: getattr(frame, field_name) for field_name in field_names}
fields
将等于:
{'dst': 'ff:ff:ff:ff:ff:ff', 'src': '00:00:00:00:00:00', 'type': 36864}