在Wireshark Lua解剖器中获取网络接口

时间:2017-03-16 15:29:51

标签: wireshark wireshark-dissector

我在Lua写了一个Wireshark解剖器。有没有办法让网络接口在解剖器内接收/传输当前帧?

1 个答案:

答案 0 :(得分:1)

根据Wireshark Display Filter Reference页面,有一个名为frame.interface_id的框架字段,可从Wireshark 1.8.0开始提供,它应该为您提供接口的ID。如果从枚举中减去1,则ID似乎与dumpcap -D(或tshark -D)的结果中给出的枚举相匹配。换句话说,dumpcap和tshark计数接口在相应的-D输出中以1开头,而Wireshark似乎从0开始计数。这种不一致对我来说似乎是个错误,我建议归档{{3}反对这种不一致的行为。

编辑(因为似乎无法使用评论以连贯的方式对其进行格式化):

要访问该字段,您可以使用字段提取器,请参阅:Wireshark bug report

例如:

local fe_interface_id = Field.new("frame.interface_id")

function foo.dissector(buffer, pinfo, tree)
    local f_interface_id = fe_interface_id()
    pinfo.cols.info:append(", Interface ID=" .. tostring(f_interface_id))
end