包捕获库过滤器表达式

本部分描述了应该捕获的包的过滤表达式。

过滤表达式传递到 pcap_compile 子例程 以指定应该捕获的包。 如果未给出过滤表达式,那么将捕获网络上的所有包。 否则,将仅捕获过滤表达式为 True 的包。 过滤表达式是由一个或多个原语组成的 ASCII 字符串。 原语通常由一个 id (名称或数字) 和一个或多个限定符组成。 有三种类型的限定符:

描述
TYPE 指定 id 名称或编号所引用的设备类型。 可能的类型为 hostnetport。 示例如下:host foo,net 128.3,port 20。如果没有 type 限定符,那么将采用 host
dir 指定与 id之间的特定传输方向。 可能的方向为 srcdstsrc 或 dst以及 src 和 dst。 以下是带有 dir 限定符的一些示例:src foo,dst net 128.3,src dst port ftp-data. 如果没有 dir 限定符,那么假定为 src 或 dst
proto 将匹配限制为特定协议。 可能的 proto限定符为: etheriparprarptcpudp。 示例包括: ether src foo,arp net 128.3,tcp port 21. 如果没有 proto 限定符,那么将采用与类型一致的所有协议。 例如,src foo平均值iparp, net bar平均值iparprarp net barport 53平均值tcpudp port 53.

还有一些不遵循模式的特殊原语关键字: broadcast多点广播less较大和算术表达式。 以下信息中描述了所有这些关键字。