Lua能否允许我“读取”Wireshark过滤文本框中的文本?

我想编写一个应用程序,可以读取Wireshark过滤器文本框中的任何过滤标准,然后使用Lua进行操作。有人知道是否可能吗?我想在深入学习Lua并将其与Wireshark一起使用之前了解它是否可行。

谢谢! 乔

原文链接 https://stackoverflow.com/questions/6065259

点赞
stackoverflow用户88888888
stackoverflow用户88888888

不,你不能读取它,但是你可以设置过滤器并将其应用于当前抓取。请参阅 Wireshark 文档中的 GUI Support 部分。

要设置显示过滤器文本框的文本,请使用 set_filter(text)。 要应用当前的显示过滤器文本(使其生效),请使用 apply_filter()

避免在分析器内调用 apply_filter()(由于重新调用分析器可能导致无限循环)。此函数更适合于菜单操作或按钮操作。

编辑:要向 Wireshark 的 Lua API 中添加自己的 get_filter() 函数(未经测试):

  1. funnel_stat.c 中添加名为 funnel_get_filter() 的函数(请参见第 468 行的示例)。
  2. get_filter 添加到 funnel_ops_t 中(funnel.h:80)。
  3. funnel_stat.c:546tap-funnel.c:90 中将 funnel_get_filter 添加到 funnel_ops。请根据 funnel_ops_t 将其添加到正确的数组索引。
  4. 将以下代码复制到 wslua_gui.c,然后编译:

/* TODO: Test me!! */

WSLUA_FUNCTION wslua_get_filter(lua_State* L) { /* 获取显示过滤器文本框的文本 */
    const gchar* text;
    text = ops->get_filter();
    lua_pushstring(L,text);
    WSLUA_RETURN(1); /* 显示过滤器文本框的文本。 */
}
2011-05-22 19:46:54