0
我正在Lua寫一個Wireshark解析器。有沒有辦法從解剖器內部獲取/傳輸當前幀的網絡接口?在Wireshark Lua解析器中獲取網絡接口
我正在Lua寫一個Wireshark解析器。有沒有辦法從解剖器內部獲取/傳輸當前幀的網絡接口?在Wireshark Lua解析器中獲取網絡接口
有一個框架字段叫做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
FYI:我已經提交了一份bug報告:https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=13496 –
由於錯誤的註釋表明,該'frame.interface_id'字段表示的價值 要寫入pcapng文件的接口,根本不對應於'{tshark,dumpcap} -D'輸出。指定的第一個接口將分配索引0,下一個索引1,依此類推。 「frame.interface_id」的這種行爲是否改變仍有待觀察,但我懷疑它;因此你只需要知道它的價值代表什麼。 –
感謝您的回答和錯誤報告。你能告訴我如何在解剖器中訪問框架字段嗎? (即在「Proto.dissector(緩衝區,pinfo,樹)」函數內)。更具體地說,我想使用該值來修改'pinfo.cols.info'中顯示的內容。 – zeeMonkeez