pcap过滤规则格式

上传人:小** 文档编号:46748741 上传时间:2018-06-27 格式:DOC 页数:6 大小:47KB
返回 下载 相关 举报
pcap过滤规则格式_第1页
第1页 / 共6页
pcap过滤规则格式_第2页
第2页 / 共6页
pcap过滤规则格式_第3页
第3页 / 共6页
pcap过滤规则格式_第4页
第4页 / 共6页
pcap过滤规则格式_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《pcap过滤规则格式》由会员分享,可在线阅读,更多相关《pcap过滤规则格式(6页珍藏版)》请在金锄头文库上搜索。

1、函数名称:函数名称:int pcap_compile(pcap_t *p, struct bpf_program *fp,char *str, int optimize, bpf_u_int32 netmask) 函数功能:该函数用于将函数功能:该函数用于将 str 指定的规则整合到指定的规则整合到 fp 过滤程序中去,并生成过滤程序入口地址,用于过滤选择期过滤程序中去,并生成过滤程序入口地址,用于过滤选择期望的数据报。望的数据报。 参数说明:参数说明:pcap_t *p:pcap_open_live 返回的数据报捕获的指针;返回的数据报捕获的指针;struct bpf_program *fp

2、:指向一个子函数用于过滤,在指向一个子函数用于过滤,在 pcap_compile()函数中被赋值;函数中被赋值;char *str:该字符串规定过滤规则;该字符串规定过滤规则;int optimize:规定了在结果代码上的选择是否被执行;规定了在结果代码上的选择是否被执行;bpf_u_int32 netmask:该网卡的子网掩码,可以通过该网卡的子网掩码,可以通过 pcap_lookupnet()获取;获取;返回值:返回值: 如果成功执行,返回如果成功执行,返回 0,否则返回否则返回-1;过滤规则由一个或多个 原语 (primitive) 组成,如果为”则表示不进行任何过滤. 原语 通常 由

3、一个 标识 (id, 名称或数字), 和 标识 前面的 一个或多个 修饰子(qualifier) 组成. 修饰子 有 三种 不同的类型: type 类型修饰子 指出 标识名称 或 标识数字 代表 什么 类型的东西. 能够使用的 类型 有 hosthost, netnet 和 portport. 例如, host foo, net 128.3, port 20. 假如 不指定 类型修饰子, 就使用 缺省的 hosthost . . dir 方向修饰子 指出 相对于 标识标识 的 传输方向 (数据是 传入还是传出 标识). 能够使用的 方向 有 srcsrc, dstdst, srcsrc oro

4、r dstdst 和 srcsrc andand dstdst. 例如, src foo, dst net 128.3, src or dst port ftp-data. 假如 不指定 方向修饰子, 就使用 缺省的 srcsrc oror dstdst . . 对于 null 链路层 (就是说 象 slip 之类的 点到点 协议), 用 inboundinbound 和 outboundoutbound 修饰子 指定 所需的 传输方向. proto 协议修饰子 需要 匹配 指定的协议. 能够使用的 协议 有: etherether, fddifddi, ipip, arparp, rarpr

5、arp, decnetdecnet, latlat, scasca, moprcmoprc, mopdlmopdl, tcptcp 和 udpudp. 例如, ether src foo, arp net 128.3, tcp port 21. 假如 不指定协议修饰子, 就使用 任何 符合 类型 的 协议. 例如, src foo 指 (ip 或 arp 或 rarp) src foo (注意后者不符合语法), net bar 指 (ip 或 arp 或 rarp) net bar, port 53 指 (tcp 或 udp) port 53. fddi 实际上 是 ether 的 别名; 分

6、析器 把 他们 视为 用在 指定 网络接口 上的 数据链路层. FDDI 报头 包含 类似于 以太协议的 源目地址, 而且 通常 包含 类似于 以太协议 的 报文类型, 因此 您 能够过滤 FDDI 域, 就象 分析 以太协议 相同. FDDI 报头 也 包含 其他 域, 但是您 不能 在 过滤器 表达式 里 显式描述. 作为 上述 的 补充, 有一些 特别的 原语 关键字, 他们 不同于 上面的模式: gatewaygateway, broadcastbroadcast, lessless, greatergreater 和 数学表达式. 这些 在 后面 有 叙述. 更复杂的 过滤器表达式

7、能够 通过 andand, oror 和 notnot 连接 原语 来 组建. 例如, host foo and not port ftp and not port ftp-data. 为了少敲点键, 能够忽略 相同的 修饰子. 例如, tcp dst port ftp or ftp-data or domain 实际上 就是 tcp dst port ftp or tcp dst port ftp-data or tcp dst port domain. 允许的 原语 有: dstdst hosthost host 假如 报文中 IP 的 目的地址域 是 host, 则 逻辑 为 真. ho

8、st 既能够 是 地址, 也能够 是 主机名. srcsrc hosthost host 假如 报文中 IP 的 源地址域 是 host, 则 逻辑 为 真. hosthost host 假如 报文中 IP 的 源地址域 或 目的地址域 是 host, 则 逻辑 为 真. 上面 任何的 host 表达式 都能够 加上 ipip, arparp, 或 rarprarp 关键字 做 前缀, 就象: ipip hosthost host他等价于: etherether protoproto ip andand hosthost host假如 host 是 拥有 多个 IP 地址 的 主机名, 他的

9、每个地址 都会 被查验. etherether dstdst ehost 假如 报文的 以太目的地址 是 ehost, 则 逻辑 为 真. Ehost 既能够是 名字 (/etc/ethers 里有), 也能够是 数字 (有关 数字格式 另见 ethers(3N) ). etherether srcsrc ehost 假如 报文的 以太源地址 是 ehost, 则 逻辑 为 真. etherether hosthost ehost 假如 报文的 以太源地址 或 以太目的地址 是 ehost, 则 逻辑 为 真. gatewaygateway host 假如 报文 把 host 当做 网关, 则

10、 逻辑 为 真. 也就是说, 报文的以太源或目的地址 是 host, 但是 IP 的 源目地址 都不是 host. host 必须 是个 主机名, 而且 必须 存在 /etc/hosts 和 /etc/ethers 中. (一个等价的表达式是 etherether hosthost ehost andand notnot hosthost host对于 host / ehost, 他既能够是 名字, 也能够是 数字.) dstdst netnet net 假如 报文的 IP 目的地址 属于 网络号 net, 则 逻辑 为 真. net 既能够 是 名字 (存在 /etc/networks 中)

11、, 也能够是 网络号. (详见 networks(4). srcsrc netnet net 假如 报文的 IP 源地址 属于 网络号 net, 则 逻辑 为 真. netnet net 假如 报文的 IP 源地址 或 目的地址 属于 网络号 net, 则 逻辑 为 真. netnet net maskmask mask 假如 IP 地址 匹配 指定 网络掩码(netmask) 的 net, 则 逻辑 为 真. 本原语 能够用 srcsrc 或 dstdst 修饰. netnet net/len 假如 IP 地址 匹配 指定 网络掩码 的 net, 则 逻辑 为 真, 掩码 的 有效位宽 为

12、len. 本原语 能够用 srcsrc 或 dstdst 修饰. dstdst portport port 假如 报文 是 ip/tcp 或 ip/udp, 并且 目的端口 是 port, 则 逻辑 为 真. port 是个 数字, 也能够是 /etc/services 中 说明过的 名字 (参看 tcp(4P) 和 udp(4P). 假如 使用 名字, 则 检查 端口号 和 协议. 假如 使用 数字, 或 有二义的名字, 则 只检查 端口号 (例如, dstdst portport 513513 将显示 tcp/login 的数据 和 udp/who 的数据, 而 portport doma

13、indomain 将显示 tcp/domain 和 udp/domain 的数据). srcsrc portport port 假如 报文 的 源端口号 是 port, 则 逻辑 为 真. portport port 假如 报文 的 源端口 或 目的端口 是 port, 则 逻辑 为 真. 上述的 任意一个 端口表达式 都能够 用 关键字 tcp 或 udp 做 前缀, 就象: tcptcp srcsrc portport port 他 只匹配 源端口 是 port 的 TCP 报文. less length 假如 报文 的 长度 小于等于 length, 则 逻辑 为 真. 他等同于: le

14、nlen = length.ip proto protocol 假如 报文 是 IP 数据报(参见 ip(4P), 其 内容 的 协议类型 是 protocol, 则 逻辑 为 真. Protocol 能够是 数字, 也能够是 下列 名称 中的 一个: icmp, igrp, udp, nd, 或 tcp. 注意 这些 标识符 tcp, udp, 和 icmp 也同样是 关键字, 所以 必须 用 反斜杠() 转义, 在 C-shell 中 应该是 . ether broadcast 假如 报文 是 以太广播报文, 则 逻辑 为 真. 关键字 ether 是 可选的. ip broadcast

15、假如 报文 是 IP 广播报文, 则 逻辑 为 真. Tcpdump 检查 全 0 和 全 1 广播约定, 并且 检查 本地 的 子网掩码. ether multicast 假如 报文 是 以太多目传送报文(multicast), 则 逻辑 为 真. 关键字 ether 是 可选的. 这实际上 是 ether0 & 1 != 0 的简写. ip multicast 假如 报文 是 IP 多目传送报文, 则 逻辑 为 真. ether proto protocol 假如 报文协议 属于 以太类型 的 protocol, 则 逻辑 为 真. Protocol 能够是 数字, 也能够是 名字, 如

16、ip, arp, 或 rarp. 注意 这些 标识符 也是 关键字, 所以 必须 用 反斜杠() 转义. 假如是 FDDI (例如, fddi protocol arp), 协议 标识 来自 802.2 逻辑链路控制(LLC)报头, 他 通常 位于 FDDI 报头 的 顶层. 当 根据 协议标识过滤 报文 时, Tcpdump 假设 任何的 FDDI 报文 含有 LLC 报头, 而且 LLC 报头 用的是 SNAP 格式. decnet src host 假如 DECNET 的 源地址 是 host, 则 逻辑 为 真, 该 主机地址 的 形式 可能 是 10.123, 或是 DECNET 主机名. 只有 配置成 运行 DECNET 的 Ultrix 系统 支持 DECNET 主机名. decnet dst host 假如 DE

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 宣传企划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号