我在 lua 脚本中为协议编写了一个 dissactor。Dissactor 工作正常。但我想知道 dissactor 文件中的一个更新。
p_abcd = Proto("abcd", "ABCD")
我为不同类型的消息创建了一个表。下面是表格——
local message_types = {
[1] = "MAC ID",
[2] = "AP MODEL NAME",
[3] = "AP SERIAL NUMBER",
[4] = "CAUSE",
[5] = "AP STATE",
[6] = "AP SOFTWARE VERSION",
[7] = "AP_IP_ADDRESS"
}
下面是一个 protofield,我为此协议创建了它并将其注册为一个字段。
local attribute_type = ProtoField.string("abcd.message_type", "Attribute Type")
p_abcd.fields = {attribute_type}
tree_attribute:add(attribute_type, data(index, 2), message_types[data(index, 2):int()])
如果我将在wireshark 中对任何消息字段应用过滤器,它将显示“abcd.message_type = some_valve”作为所有消息类型的过滤器值。
我想根据不同的消息类型显示此过滤器值,例如 MAC ID 的“abcd.mac_id = some_value”,而不为每种消息类型创建单独的原型字段。
是否可以在 message_types 表的帮助下做到这一点?