2011-05-19 23 views

回答

0

不,您不能讀取它,但可以設置過濾器並將其應用於當前捕獲。請參閱Wireshark文檔中的GUI Support部分。請使用set_filter(text)。 要應用顯示過濾器的當前文本(使其生效),請使用apply_filter()

避免在解剖器內調用apply_filter()(重新調用解剖器會出現無限循環)。該功能更適合於菜單操作或按鈕操作。

編輯:爲了你自己的get_filter()的Lua函數添加到的Wireshark Lua的API(未經測試):

  1. 添加一個名爲funnel_get_filter()功能funnel_stat.c(例如見線468)。
  2. get_filterfunnel_ops_tfunnel.h:80)。
  3. funnel_get_filter加到funnel_opsfunnel_stat.c:546tap-funnel.c:90。請確保根據funnel_ops_t將其添加到正確的數組索引處。
  4. 複製下面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. */ 
} 
+0

這是不幸的。我真的需要閱讀現有的過濾器文本(如果有的話),而不會影響我的應用程序的標準工作流程。我最初考慮爲此目的修改Wireshark源代碼。我相信將這個函數添加到Lua接口會容易得多。你有沒有把這個添加爲一個新的Lua函數的指針? – Joe 2011-05-26 14:54:10

+0

編輯答案將'get_filter'添加到Wireshark Lua API。讓我知道它是否有效。 – 2011-06-09 17:16:40