2017-03-16 113 views

回答

1

有一个框架字段叫做frame.interface_id,根据Wireshark Display Filter Reference页面,Wireshark 1.8.0以后可用,它应该给你接口的ID。如果您从枚举中减去1,则ID似乎与dumpcap -D(或tshark -D)的结果中给出的枚举相匹配。换句话说,dumpcap和tshark都会在各自的-D输出中以1开始计数接口,而Wireshark似乎从0开始计数。这种不一致对我来说似乎是一个错误,我会建议将Wireshark bug report提交给这种不一致的行为。

编辑(因为它似乎是不可能的使用意见一致的方式来格式化这个):

访问该字段,你可以使用一个字段提取,请参见:https://www.wireshark.org/docs/wsdg_html_chunked/lua_module_Field.html

例如:

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 
+0

FYI:我已经提交了一份bug报告:https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=13496 –

+0

由于错误的注释表明,该'frame.interface_id'字段表示的价值 要写入pcapng文件的接口,根本不对应于'{tshark,dumpcap} -D'输出。指定的第一个接口将分配索引0,下一个索引1,依此类推。 “frame.interface_id”的这种行为是否改变仍有待观察,但我怀疑它;因此你只需要知道它的价值代表什么。 –

+0

感谢您的回答和错误报告。你能告诉我如何在解剖器中访问框架字段吗? (即在“Proto.dissector(缓冲区,pinfo,树)”函数内)。更具体地说,我想使用该值来修改'pinfo.cols.info'中显示的内容。 – zeeMonkeez