9.7. 创建过滤宏

Display Filter Macros是用来创建复杂显示过滤器的快捷方式的工具,例如:定义一个显示过滤宏,名称为tcp_conv 文本为 ( (ip.src == $1and ip.dst == $2 and tcp.srcpt == $3 and tcp.dstpt == $4) or (ip.src == $2and ip.dst == $1 and tcp.srcpt == $4 and tcp.dstpt == $3) ),以后你就可以使用${tcp_conv:10.1.1.2;10.1.1.3;1200;1400} 替代整个过滤字符串。

显示过滤宏可以通过第 9.6 节 “用户表表”,选择Display Filter Macros 菜单下的View菜单进行管理。用户表有下面两个字段。(好像没有所谓的User table)

name

宏的名称

text

宏的替代文本。使用$1,$2,$3...作为输入参数时。

过滤宏的使用说明(译者注)

首先需要说明的是,实际上在Windows平台GTK2环境下,并没有看到有显示过滤宏功能,可能有的原因有3种:1、0.99.5版本根本没有过滤宏功能;2、我视力不好,没看到,如果是这样,希望谁能帮我找找。3、Windows+GTK2下面没有,其他平台有。

这里暂且不管有没有,我先按我的理解介绍一下宏的创建使用方法。

以笔者提到的宏的例子,先说如何创建宏

  1. 定义宏的名称,如范例中的tcp_conv

  2. 定义宏的文本部分,显示过滤宏内容其实和显示过滤器结构上没有本质区别,只是将具体的值换成了参数。,比如例题中第一部分是ip.src == $1and ip.dst == $2 and tcp.srcpt == $3 and tcp.dstpt == $4,这里的$1,$2,$3,$4,如果在显示过滤器中,应该是具体的ip地址和端口号,在这里使用了$1,$2,$3,$4,是作为参数。就像定义函数的参数一样,供调用宏时传递参数用的。

  3. 如何使用宏:如例中所示,需要在显示过滤框输入或在过滤表达式编辑器中应用宏,输入宏的格式是${宏名称:参数1;参数2;参数3;....},参数就是定义宏时的参数的传入值,如例中的${tcp_conv:10.1.1.2;10.1.1.3;1200;1400},tcp_conv是宏名称,10.1.1.2是$1的取值,其他类推。

再次声明,我装的Wireshark并没有这个功能。希望你们碰到这个共能时能用上。