2017-03-16 115 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