2015-02-13 1 views
2

Я хочу перебирать имена полей, таких как src и dst, а также имеют свои значения, я попытался это:Перебор полей слоя в Scapy

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

Но мне нужна функция, которая даст мне словарь с именем поля и его значение, например -

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

Можете ли вы привести пример вывода о том, что можно было бы ожидать? –

+0

Что вы получаете/ожидаете? – Maroun

+0

Я хочу показать все поля упакованных, которые обнюхиваются в приложении gui. – oridm

ответ

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} 

 Смежные вопросы

  • Нет связанных вопросов^_^