0
我希望編寫一個應用程序,它可以讀取Wireshark過濾器文本框中的任何過濾條件,然後使用Lua對其進行處理。有誰知道這是否可能?我想知道在我深入學習Lua並在Wireshark中使用它之前是否有可能。Lua允許我從Wireshark過濾器文本框中「讀入」文本嗎?
謝謝! Joe
我希望編寫一個應用程序,它可以讀取Wireshark過濾器文本框中的任何過濾條件,然後使用Lua對其進行處理。有誰知道這是否可能?我想知道在我深入學習Lua並在Wireshark中使用它之前是否有可能。Lua允許我從Wireshark過濾器文本框中「讀入」文本嗎?
謝謝! Joe
不,您不能讀取它,但可以設置過濾器並將其應用於當前捕獲。請參閱Wireshark文檔中的GUI Support部分。請使用set_filter(text)
。 要應用顯示過濾器的當前文本(使其生效),請使用apply_filter()
。
避免在解剖器內調用apply_filter()
(重新調用解剖器會出現無限循環)。該功能更適合於菜單操作或按鈕操作。
編輯:爲了你自己的get_filter()
的Lua函數添加到的Wireshark Lua的API(未經測試):
funnel_get_filter()
功能funnel_stat.c
(例如見線468)。get_filter
至funnel_ops_t
(funnel.h:80
)。funnel_get_filter
加到funnel_ops
在funnel_stat.c:546
和tap-funnel.c:90
。請確保根據funnel_ops_t
將其添加到正確的數組索引處。wslua_gui.c
代碼,然後編譯:/* TODO: Test me!! */
WSLUA_FUNCTION wslua_get_filter(lua_State* L) { /* Get the text of the display filter textbox */
const gchar* text;
text = ops->get_filter();
lua_pushstring(L,text);
WSLUA_RETURN(1); /* The display filter textbox's text. */
}
這是不幸的。我真的需要閱讀現有的過濾器文本(如果有的話),而不會影響我的應用程序的標準工作流程。我最初考慮爲此目的修改Wireshark源代碼。我相信將這個函數添加到Lua接口會容易得多。你有沒有把這個添加爲一個新的Lua函數的指針? – Joe 2011-05-26 14:54:10
編輯答案將'get_filter'添加到Wireshark Lua API。讓我知道它是否有效。 – 2011-06-09 17:16:40