迭代Scapy中图层的字段

时间:2015-02-13 14:09:51

标签: python iteration packet scapy

我想迭代srcdst等字段的名称,并且还有自己的值。我试过这个:

for field in pkt['Ethernet']:
    print field

但我需要一个函数,它会给我一个字典名称及其值的字典,例如 -

{'dst':'00:0a:95:9d:68:16','src':'00:0a:95:9d:68:16','type':'tcp'}

1 个答案:

答案 0 :(得分:4)

首先,从协议类型中获取所有字段名称,然后使用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}