wpcap filters are based on a declarative predicate syntax. A filter is an ASCII string containing a filtering expression. pcap_compile() takes the expression and translates it in a program for the kernel-level packet filter. wpcap过滤器是一个基于声明的谓词语法。一个过滤器就是一个包含了过滤expression的ASCII字符串。pcap_complite()函数将表达式转换成内核级包过滤器。 ### WinPcap: Filtering Expression Syntax #### 概述 WinPcap是一款强大的网络包捕获与分析工具,它能够帮助用户在Windows平台上实现对网络流量的监控与分析。其核心功能之一是支持复杂的过滤表达式,允许用户精确地定义哪些数据包应该被捕获并进行进一步的处理。 #### 过滤器表达式语法 WinPcap的过滤器表达式语法基于一种声明式的谓词逻辑。简单来说,过滤器是一个ASCII字符串,该字符串包含了一个用于选择数据包的过滤表达式。通过调用`pcap_compile()`函数,可以将这个表达式编译成一个程序,进而供内核级别的包过滤机制执行。 **过滤表达式**的作用在于确定哪些数据包应该被捕获并记录下来。如果未提供过滤表达式,则所有网络上的数据包都会被内核级过滤引擎接受。反之,只有那些使过滤表达式结果为“真”的数据包才会被接受。 #### 过滤表达式的构成 过滤表达式由一个或多个**原语(primitive)**组成。每个原语通常包括一个标识符(ID),该标识符前可有一个或多个修饰符(qualifier)。这些修饰符有助于更精确地定义过滤条件。 - **类型修饰符(type qualifier):** 用于指定ID所代表的实体类型。可能的类型包括: - `host`: 表示单个主机。例如,`host foo`。 - `net`: 表示一个网络。例如,`net 128.3`。 - `port`: 表示端口。例如,`port 20`。 如果没有指定类型修饰符,则默认为`host`。 - **方向修饰符(dir qualifier):** 用于指定数据传输的方向。可能的方向包括: - `src`: 表示数据包的源地址。例如,`src foo`。 - `dst`: 表示数据包的目标地址。例如,`dst net 128.3`。 - `src or dst`: 匹配源地址或目标地址。例如,`src or dst port ftp-data`。 - `src and dst`: 同时匹配源地址和目标地址。 如果没有指定方向修饰符,则默认为`src or dst`。 对于没有链路层的协议(如点对点协议SLIP等),还可以使用`inbound`和`outbound`来指定数据包的方向。 - **协议修饰符(proto qualifier):** 用于限制匹配特定的协议。可能的协议包括: - `ether`: 表示以太网协议。 - `fddi`: 表示光纤分布式数据接口(FDDI)协议。 - `tr`: 表示令牌环(Token Ring)协议。 - `ip`: 表示IPv4协议。 - `ip6`: 表示IPv6协议。 - `arp`: 表示地址解析协议(ARP)。 - `rarp`: 表示逆向地址解析协议(RARP)。 - `decnet`: 表示DECnet协议。 - `tcp`: 表示传输控制协议(TCP)。 - `udp`: 表示用户数据报协议(UDP)。 如果没有指定协议修饰符,则默认匹配所有协议。 #### 综合示例 为了更好地理解如何构建过滤表达式,我们来看几个示例: 1. **捕获来自或发往特定主机的所有TCP数据包:** ``` tcp and (host 192.168.1.1 or host 192.168.1.2) ``` 2. **捕获所有HTTP请求(HTTP请求通常使用TCP协议的80端口):** ``` tcp port 80 ``` 3. **捕获所有进出特定主机的ARP请求:** ``` arp and (host 192.168.1.3) ``` 4. **捕获所有IPv6数据包:** ``` ip6 ``` 5. **捕获所有从特定主机发出的UDP数据包:** ``` udp and src host 192.168.1.4 ``` 通过上述介绍,我们可以看出WinPcap的过滤表达式语法提供了丰富的功能,允许用户根据自己的需求定制过滤规则。这对于网络监控、安全审计和故障排除等方面非常有用。
剩余10页未读,继续阅读
- zhenyippp2013-01-21资源不错,但不是我想要的。我想要一个封装好的WIRESHARK 的filter对话框的类
- 粉丝: 14
- 资源: 4
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助