包捕获库过滤器表达式
本部分描述了应该捕获的包的过滤表达式。
过滤表达式传递到 pcap_compile 子例程 以指定应该捕获的包。 如果未给出过滤表达式,那么将捕获网络上的所有包。 否则,将仅捕获过滤表达式为 True 的包。 过滤表达式是由一个或多个原语组成的 ASCII 字符串。 原语通常由一个 id (名称或数字) 和一个或多个限定符组成。 有三种类型的限定符:
| 项 | 描述 |
|---|---|
| TYPE | 指定 id 名称或编号所引用的设备类型。 可能的类型为 host, net和 port。 示例如下:host foo,net 128.3,port 20。如果没有 type 限定符,那么将采用 host 。 |
| dir | 指定与 id之间的特定传输方向。 可能的方向为 src, dst, src 或 dst以及 src 和 dst。 以下是带有 dir 限定符的一些示例:src foo,dst net 128.3,src或 dst port ftp-data. 如果没有 dir 限定符,那么假定为 src 或 dst 。 |
| proto | 将匹配限制为特定协议。 可能的 proto限定符为: ether, ip, arp, rarp, tcp和 udp。 示例包括: ether src foo,arp net 128.3,tcp port 21. 如果没有 proto 限定符,那么将采用与类型一致的所有协议。 例如,src foo平均值ip或arp, net bar平均值ip或arp或rarp net bar和port 53平均值tcp或udp port 53. |
还有一些不遵循模式的特殊原语关键字: broadcast, 多点广播, less, 较大和算术表达式。 以下信息中描述了所有这些关键字。