pcap过滤规则格式
抓包软件Wireshark常用过滤使用方法命令

抓包软件Wireshark常⽤过滤使⽤⽅法命令抓包软件Wireshark常⽤过滤使⽤⽅法命令过滤源ip、⽬的ip。
在wireshark的过滤规则框Filter中输⼊过滤条件。
如查找⽬的地址为192.168.101.8的包,ip.dst192.168.101.8;查找源地址为ip.src1.1.1.1端⼝过滤。
如过滤80端⼝,在Filter中输⼊,tcp.port80,这条规则是把源端⼝和⽬的端⼝为80的都过滤出来。
使⽤tcp.dstport80只过滤⽬的端⼝为80的,tcp.srcport==80只过滤源端⼝为80的包协议过滤⽐较简单,直接在Filter框中直接输⼊协议名即可,如过滤HTTP的协议http模式过滤。
如过滤get包,http.request.method"GET",过滤post包,http.request.method"POST"连接符and的使⽤。
过滤两种条件时,使⽤and连接,如过滤ip为192.168.101.8并且为http协议的,ip.src==192.168.101.8 and http。
⼯作中,⼀些使⽤⽅式调整时间格式然后再排序下。
根据时间字段根据端⼝过滤服务端端⼝是7018,和客户端建⽴socket连接,根据服务端的端⼝找到2者通信的所有socket数据(客户端进⼊房间后会异常断开,判断是客户端导致的还是服务端导致的)tcp.port==7018,最后的RST报⽂是服务端发起的,说明是服务端主动断开的,缩⼩问题范围仅从抓包信息看是服务器的⼀个流量控制机制启动了。
服务器发回rst位,同时win置为0,是告诉客户端不要发包。
按tcp流控机制来说,此时客户端应该停⽌发包,直⾄服务器发送信息告诉客户端可以继续发送。
TCP连接:SYN ACK RST UTG PSH FIN三次握⼿:发送端发送⼀个SYN=1,ACK=0标志的数据包给接收端,请求进⾏连接,这是第⼀次握⼿;接收端收到请求并且允许连接的话,就会发送⼀个SYN=1,ACK=1标志的数据包给发送端,告诉它,可以通讯了,并且让发送端发送⼀个确认数据包,这是第⼆次握⼿;最后,发送端发送⼀个SYN=0,ACK=1的数据包给接收端,告诉它连接已被确认,这就是第三次握⼿。
pcap tls协议解析规则

pcap tls协议解析规则摘要:1.PCAP 简介2.TLS 协议简介3.PCAP 解析TLS 协议的方法4.PCAP tls 协议解析规则的具体内容5.PCAP tls 协议解析规则的应用示例正文:1.PCAP 简介PCAP(Packet Capture) 是一种网络数据包捕获技术,可以用于捕获计算机网络中的数据包,并将其保存到本地文件中,以便进行分析和调试。
PCAP 可以捕获各种网络协议的数据包,如TCP/IP、UDP、ICMP 等。
2.TLS 协议简介TLS(Transport Layer Security) 是一种安全协议,用于保护网络通信。
TLS 协议通常用于保护Web 浏览器和Web 服务器之间的通信,以及保护电子邮件传输过程中的数据。
TLS 协议采用公钥加密和私钥解密的方式,确保通信过程中的数据不被第三方窃取或篡改。
3.PCAP 解析TLS 协议的方法PCAP 可以捕获TLS 协议的数据包,并对其进行解析。
PCAP 解析TLS 协议的方法主要包括以下两种:(1)PCAP 过滤器:PCAP 过滤器可以根据特定的规则,过滤出TLS 协议的数据包。
例如,可以使用“tcp and port 443”的规则,过滤出TLS 协议的数据包。
(2)PCAP 解析器:PCAP 解析器可以解析TLS 协议的数据包,并提取出其中的信息。
例如,可以使用Wireshark 等网络协议分析工具,解析PCAP 捕获的TLS 协议数据包。
4.PCAP tls 协议解析规则的具体内容PCAP tls 协议解析规则包括以下内容:(1) 解析TLS 协议的数据包头部:TLS 协议的数据包包含头部和数据两部分。
头部包含了TLS 协议的版本、协议标志、加密算法、压缩方法等信息。
PCAP tls 协议解析规则需要解析数据包头部,并提取相关信息。
(2) 解析TLS 协议的数据部分:TLS 协议的数据部分包含了通信双方的公钥证书、公钥、私钥等敏感信息。
BPF过滤规则参考

len >= length.
ip proto protocol
如果报文是 IP 数据报,其内容的协议类型是 protocol,则逻辑为真。即只捕获网络协议类型是 protocol 的 ip 数据包。protocol 可以是数字,也可以是下列名称中的一个:icmp, igrp,
如果报文是 IP 广播报文,则逻辑为真。检查全 0 和全 1 的广播约定,并且检查本地的子网掩码。
ether multicast
如果报文是以太多目传送报文(multicast),则过滤规则逻辑为真。关键字 ether 是可选的。这实际上是 ’ether[0] & 1 != 0’ 的简写。
ip multicast
expr relop expr
如果这个关系成立,则逻辑为真,其中 relop 是 >, <, >=, <=, =, != 之一, expr 是数学表达式,由常整数(标准 C 语法形式),普通的二进制数运算符[+, -, *, /, &, |],一个长度运算符,和指定的报文数据访问算符组成。要访问报文内的数据,使用下面的语法:
下面介绍过滤规则的原语,允许的原语有以下几种。
dst host host1
如果报文中 IP 的目的地址域是 host1,则逻辑为真。host1 既可以是地址,也可以是主机名。此过滤规则就是捕获所有目的地址是 host1 的网络数据包。
src host host1
如果报文中 IP 的源地址域是 host1,则逻辑为真。即捕获所有源地址是 host1 的所有网络数据包。
抓包过滤表达式

一、针对wireshark最常用的自然是针对IP地址的过滤。
其中有几种情况:(1)对源地址为192.168.0.1的包的过滤,即抓取源地址满足要求的包。
表达式为:ip.src == 192.168.0.1(2)对目的地址为192.168.0.1的包的过滤,即抓取目的地址满足要求的包。
表达式为:ip.dst == 192.168.0.1(3)对源或者目的地址为192.168.0.1的包的过滤,即抓取满足源或者目的地址的ip 地址是192.168.0.1的包。
表达式为:ip.addr == 192.168.0.1,或者 ip.src == 192.168.0.1 or ip.dst == 192.168.0.1(4)要排除以上的数据包,我们只需要将其用括号囊括,然后使用 "!" 即可。
表达式为:!(表达式)二、针对协议的过滤(1)仅仅需要捕获某种协议的数据包,表达式很简单仅仅需要把协议的名字输入即可。
表达式为:http(2)需要捕获多种协议的数据包,也只需对协议进行逻辑组合即可。
表达式为:http or telnet (多种协议加上逻辑符号的组合即可)(3)排除某种协议的数据包表达式为:not arp !tcp三、针对端口的过滤(视协议而定)(1)捕获某一端口的数据包表达式为:tcp.port == 80(2)捕获多端口的数据包,可以使用and来连接,下面是捕获高端口的表达式表达式为:udp.port >= 2048四、针对长度和内容的过滤(1)针对长度的过虑(这里的长度指定的是数据段的长度)表达式为:udp.length < 30 http.content_length <=20 (2)针对数据包内容的过滤表达式为:http.request.uri matches "vipscu" (匹配http请求中含有vipscu 字段的请求信息)通过以上的最基本的功能的学习,如果随意发挥,可以灵活应用,就基本上算是入门了。
pcap使用手册

pcap使用手册让我们从看看这篇文章写给谁开始。
显而易见的,需要一些C语言基础知识,除非你只想了解基本的理论。
你不必是一个编码专家,因为这个领域只有经验丰富的程序员涉足,而我将尽可能详细的描述这些概念。
另外,考虑到这是有关一个包嗅探器的,所以对网络基础知识的理解是有帮助的。
所有在此出现的代码示例都已在FreeBSD 4.3平台上测试通过。
开始:pcap应用程序的格式我们所要理解的第一件事情是一个基于pcap的嗅探器程序的总体布局。
流程如下:1.我们从决定用哪一个接口进行嗅探开始。
在Linux中,这可能是eth0,而在BSD系统中则可能是xl1等等。
我们也可以用一个字符串来定义这个设备,或者采用pcap提供的接口名来工作。
2.初始化pcap。
在这里我们要告诉pcap对什么设备进行嗅探。
假如愿意的话,我们还可以嗅探多个设备。
怎样区分它们呢?使用文件句柄。
就像打开一个文件进行读写一样,必须命名我们的嗅探“会话”,以此使它们各自区别开来。
3.如果我们只想嗅探特定的传输(如TCP/IP包,发往端口23的包等等),我们必须创建一个规则集合,编译并且使用它。
这个过程分为三个相互紧密关联的阶段。
规则集合被置于一个字符串内,并且被转换成能被pcap读的格式(因此编译它)。
编译实际上就是在我们的程序里调用一个不被外部程序使用的函数。
接下来我们要告诉pcap使用它来过滤出我们想要的那一个会话。
4.最后,我们告诉pcap进入它的主体执行循环。
在这个阶段内pcap一直工作到它接收了所有我们想要的包为止。
每当它收到一个包就调用另一个已经定义好的函数,这个函数可以做我们想要的任何工作,它可以剖析所部获的包并给用户打印出结果,它可以将结果保存为一个文件,或者什么也不作。
5.在嗅探到所需的数据后,我们要关闭会话并结束。
这是实际上一个很简单的过程。
一共五个步骤,其中一个(第3个)是可选的。
我们为什么不看一看是怎样实现每一个步骤呢?设置设备这是很简单的。
wireshark 组播 过滤规则

wireshark 组播过滤规则Wireshark是一款常用的网络数据包分析工具,它可以用来捕获、分析和展示网络数据包。
在网络中,组播(Multicast)是一种常用的数据传输方式,它可以将一个数据包同时发送给多个目标地址,而不必为每个目标地址单独发送数据包。
本文将介绍如何使用Wireshark 的过滤规则来捕获和分析组播数据包。
一、组播地址在IPv4网络中,组播地址是224.0.0.0至239.255.255.255之间的地址。
其中,224.0.0.0至224.0.0.255是本地组播地址,用于同一个网络中的主机之间通信;224.0.1.0至238.255.255.255是全局组播地址,用于跨越多个网络的主机之间通信。
在IPv6网络中,组播地址是ff00::/8,其中ff02::1是所有节点组播地址,ff02::2是所有路由器组播地址。
二、捕获组播数据包在Wireshark中,可以使用以下过滤规则来捕获组播数据包:1. 捕获本地组播数据包:ip.dst==224.0.0.0/242. 捕获全局组播数据包:ip.dst==224.0.1.0/243. 捕获所有组播数据包:ip.dst==224.0.0.0/4三、分析组播数据包在Wireshark中,可以使用以下功能来分析组播数据包:1. 分组视图(Grouping view):将组播数据包按照IP地址或协议类型进行分组,便于查看。
2. 流视图(Stream view):将组播数据包按照流的方式展示,便于查看流的传输情况。
3. 协议分析(Protocol analysis):Wireshark可以对组播数据包进行协议分析,展示每个协议的详细信息。
4. 统计信息(Statistics):Wireshark可以生成各种统计信息,如流量、协议使用情况等。
总结:本文介绍了如何使用Wireshark的过滤规则来捕获和分析组播数据包。
通过分组视图、流视图、协议分析和统计信息等功能,我们可以更深入地了解组播数据包的传输情况和协议使用情况,便于优化网络性能和故障排除。
通过wireshark分析pcap抓包方法说明

文档维护人:杨云邮箱:yangyun@版权所有 侵权必究 2013年12月上海网宿科技股份有限公司扎实稳健,和谐融洽志存高远,厚积薄发Wireshark 使用指南---通过wireshark 分析pcap 抓包方法说明版本修订记录(项目)目录1.背景 (4)2.支持的文件格式 (4)3.源目的IP查看 (4)4.DNS报文查看 (4)5.HTTP报文查看 (6)6.报文过滤语法 (8)(1)IP过滤:包括来源IP或者目标IP等于某个IP (8)(2)端口过滤: (8)(3)协议过滤: (9)(4)TCP显示过滤规则: (9)(5)包长度过滤: (9)(6)HTTP模式过滤: (9)(7)表达式: (11)1.背景本文档介绍如何利用wireshark工具分析抓包。
2.支持的文件格式支持解析wireshark或者tcpdump等抓包工具抓下来的报文,支持pcap/pcapng/cap等抓包格式。
(tcpdump抓包工具使用见“tcpdump使用指南.docx”)3.源目的IP查看通过目的IP查看判断用户访问是否到我们的加速服务。
以及其他的问题。
Pcap包在wireshark中展示如下图,由左往右各列的含义分别是:流序列号即第几条流(No.),相对时间(Time),源IP(Source),目的IP(Destination),协议(Protocol),报文长度(Length),报文详情(Info)。
红色框的部分就是抓包的源IP和目的IP了。
4.DNS报文查看可以通过dns判断域名是否引导到我们的加速服务上。
以及dns相关的其他问题。
过滤条件填dns,apply应用过滤条件,即可过滤出dns报文,如下图。
Info(报文详情)列查看dns报文的详情。
详情内容如“Standard query 0x4899 A ”,为dns请求报文,为请求解析的域名;内容如“Standard query response 0x6900 CNAME CNAME A 42.62.12.123 A 42.62.12.121”为dns响应报文,意思是解析的域名有别名和,解析结果IP是42.62.12.123 和42.62.12.121。
Wireshark基本用法过滤规则协议详解

Wireshark基本⽤法过滤规则协议详解基本使⽤:协议解析:(1)版本,占4位,指IP协议的版本,⽬前⼴泛使⽤的IP协议版本号为4(即)。
2)⾸部长度,占4位,可表⽰的最⼤⼗进制数值是15。
请注意,这个字段所表⽰数的单位是32位字长(1个32位字长是4字节),因此,当IP 的⾸部长度为1111时(即⼗进制的15),⾸部长度就达到60字节。
当IP分组的⾸部长度不是4字节的整数倍时,必须利⽤最后的填充字段加以填充。
因此数据部分永远在4字节的整数倍开始,这样在实现IP协议时较为⽅便。
⾸部长度限制为60字节的缺点是有时可能不够⽤。
但这样做是希望⽤户尽量减少开销。
最常⽤的⾸部长度就是20字节(即⾸部长度为0101),这时不使⽤任何选项。
(3)服务类型,占8位,⽤来获得更好的服务,但实际上⼀直没有被使⽤过。
1998年IETF把这个字段改名为区分服务DS(Differentiated Services)。
只有在使⽤区分服务时,这个字段才起作⽤。
(4)总长度,总长度指⾸部和数据之和的长度,单位为字节。
总长度字段为16位,因此数据报的最⼤长度为2^16-1=65535字节。
在IP层下⾯的每⼀种数据链路层都有⾃⼰的帧格式,其中包括帧格式中的数据字段的最⼤长度,这称为最⼤传送单元MTU(Maximum Transfer Unit)。
当⼀个数据报封装成链路层的帧时,此数据报的总长度(即⾸部加上数据部分)⼀定不能超过下⾯的数据链路层的MTU值。
PS:图中总长度为84个字节,ping包默认为56个字节,ICMP包头是8个字节,再加上⾸部长度20个字节。
下图我将包长度设置为112个字节后,总长度就变成140个字节了(5)标识(identification),占16位。
IP软件在存储器中维持⼀个计数器,每产⽣⼀个数据报,计数器就加1,并将此值赋给标识字段。
但这个“标识”并不是序号,因为IP是⽆连接服务,数据报不存在按序接收的问题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
函数名称: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:指向一个子函数用于过滤,在pcap_compile()函数中被赋值;char *str:该字符串规定过滤规则;int optimize:规定了在结果代码上的选择是否被执行;bpf_u_int32 netmask:该网卡的子网掩码,可以通过pcap_lookupnet()获取;返回值:如果成功执行,返回0,否则返回-1;过滤规则由一个或多个原语(primitive)组成,如果为””则表示不进行任何过滤. 原语通常由一个标识(id, 名称或数字), 和标识前面的一个或多个修饰子(qualifier) 组成. 修饰子有三种不同的类型:type类型修饰子指出标识名称或标识数字代表什么类型的东西. 能够使用的类型有host, net和port. 例如, `host foo', `net 128.3', `port 20'. 假如不指定类型修饰子, 就使用缺省的host .dir方向修饰子指出相对于标识的传输方向 (数据是传入还是传出标识). 能够使用的方向有src, dst, src or dst和src and dst. 例如, `src foo', `dst net 128.3', `src or dst port ftp-data'.假如不指定方向修饰子, 就使用缺省的src or dst .对于 `null' 链路层 (就是说象 slip 之类的点到点协议), 用inbound和outbound修饰子指定所需的传输方向.proto协议修饰子需要匹配指定的协议. 能够使用的协议有: ether, fddi, ip, arp, rarp, decnet, lat, sca, moprc, mopdl, tcp和udp. 例如, `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' 的别名; 分析器把他们视为 ``用在指定网络接口上的数据链路层.'' FDDI 报头包含类似于以太协议的源目地址, 而且通常包含类似于以太协议的报文类型, 因此您能够过滤 FDDI 域, 就象分析以太协议相同. FDDI 报头也包含其他域, 但是您不能在过滤器表达式里显式描述.]作为上述的补充, 有一些特别的 `原语' 关键字, 他们不同于上面的模式: gateway, broadcast, less, greater和数学表达式. 这些在后面有叙述.更复杂的过滤器表达式能够通过and, or和not连接原语来组建. 例如, `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'.允许的原语有:dst host host假如报文中 IP 的目的地址域是host, 则逻辑为真. host既能够是地址, 也能够是主机名.src host host假如报文中 IP 的源地址域是host, 则逻辑为真.host host假如报文中 IP 的源地址域或目的地址域是host, 则逻辑为真. 上面任何的 host 表达式都能够加上ip, arp, 或rarp关键字做前缀, 就象:ip host host他等价于:ether proto \ip and host host假如host是拥有多个 IP 地址的主机名, 他的每个地址都会被查验.ether dst ehost假如报文的以太目的地址是ehost, 则逻辑为真. Ehost既能够是名字 (/etc/ethers 里有), 也能够是数字 (有关数字格式另见ethers(3N) ).ether src ehost假如报文的以太源地址是ehost, 则逻辑为真.ether host ehost假如报文的以太源地址或以太目的地址是ehost, 则逻辑为真.gateway host假如报文把host当做网关, 则逻辑为真. 也就是说, 报文的以太源或目的地址是host, 但是 IP 的源目地址都不是host. host必须是个主机名, 而且必须存在 /etc/hosts 和/etc/ethers 中. (一个等价的表达式是ether host ehost and not host host对于host / ehost, 他既能够是名字, 也能够是数字.)dst net net假如报文的 IP 目的地址属于网络号net, 则逻辑为真. net既能够是名字 (存在/etc/networks 中), 也能够是网络号. (详见networks(4)).src net net假如报文的 IP 源地址属于网络号net, 则逻辑为真.net net假如报文的 IP 源地址或目的地址属于网络号net, 则逻辑为真.net net mask mask假如 IP 地址匹配指定网络掩码(netmask) 的net, 则逻辑为真. 本原语能够用src或dst修饰.net net/len假如 IP 地址匹配指定网络掩码的net, 则逻辑为真, 掩码的有效位宽为len. 本原语能够用src或dst修饰.dst port port假如报文是 ip/tcp 或 ip/udp, 并且目的端口是port, 则逻辑为真. port是个数字, 也能够是 /etc/services 中说明过的名字 (参看tcp(4P) 和udp(4P)). 假如使用名字, 则检查端口号和协议. 假如使用数字, 或有二义的名字, 则只检查端口号 (例如, dst port 513将显示tcp/login 的数据和 udp/who 的数据, 而port domain将显示 tcp/domain 和 udp/domain 的数据).src port port假如报文的源端口号是port, 则逻辑为真.port port假如报文的源端口或目的端口是port, 则逻辑为真. 上述的任意一个端口表达式都能够用关键字tcp或udp做前缀, 就象:tcp src port port他只匹配源端口是port的TCP 报文.less length假如报文的长度小于等于length, 则逻辑为真. 他等同于:len <= length.greater length假如报文的长度大于等于length, 则逻辑为真. 他等同于:len >= length.ip proto protocol假如报文是IP 数据报(参见ip(4P)),其内容的协议类型是protocol, 则逻辑为真. Protocol能够是数字, 也能够是下列名称中的一个: icmp, igrp, udp, nd, 或tcp. 注意这些标识符tcp, udp, 和icmp也同样是关键字, 所以必须用反斜杠(\) 转义, 在C-shell 中应该是\ .ether broadcast假如报文是以太广播报文, 则逻辑为真. 关键字ether是可选的.ip broadcast假如报文是IP广播报文, 则逻辑为真. Tcpdump 检查全0 和全1 广播约定, 并且检查本地的子网掩码.ether multicast假如报文是以太多目传送报文(multicast), 则逻辑为真. 关键字ether是可选的. 这实际上是`ether[0] & 1 != 0' 的简写.ip multicast假如报文是IP多目传送报文, 则逻辑为真.ether proto protocol假如报文协议属于以太类型的protocol, 则逻辑为真. Protocol能够是数字, 也能够是名字, 如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假如DECNET 的目的地址是host, 则逻辑为真.decnet host host假如DECNET 的源地址或目的地址是host, 则逻辑为真.ip, arp, rarp, decnet是:ether proto p的简写形式, 其中p为上述协议的一种.lat, moprc, mopdl是:ether proto p的简写形式, 其中p为上述协议的一种. 注意tcpdump现在不知道如何分析这些协议. tcp, udp, icmp是:ip proto p的简写形式, 其中p为上述协议的一种.expr relop expr假如这个关系成立, 则逻辑为真, 其中relop是>, <, >=, <=, =, != 之一, expr是数学表达式, 由常整数(标准C语法形式), 普通的二进制运算符[ , -, *, /, &, |], 一个长度运算符, 和指定的报文数据访问算符组成. 要访问报文内的数据, 使用下面的语法:proto [ expr : size ]Proto是ether, fddi, ip, arp, rarp, tcp, udp, or icmp之一, 同时也指出了下标操作的协议层. expr给出字节单位的偏移量, 该偏移量相对于指定的协议层. Size是可选项, 指出感兴趣的字节数;他能够是1, 2, 4, 缺省为1 字节. 由关键字len给出的长度运算符指明报文的长度.例如, `ether[0] & 1 != 0' 捕获任何的多目传送报文. 表达式 `ip[0] & 0xf != 5' 捕获任何带可选域的 IP 报文. 表达式 `ip[6:2] & 0x1fff = 0' 只捕获未分片和片偏移为0 的数据报. 这种检查隐含在tcp和udp下标操作中. 例如, tcp[0]一定是 TCP 报头的第一个字节, 而不是其中某个 IP片的第一个字节.原语能够用下述方法结合使用:园括弧括起来的原语和操作符(园括弧在Shell 中有专用, 所以必须转义).取反操作(`!' or `not').连结操作(`&&' or `and').或操作(`||' or `or').取反操作有最高优先级. 或操作和连结操作有相同的优先级, 运算时从左到右结合. 注意连结操作需要显式的and算符, 而不是并列放置.假如给出标识符, 但没给关键字, 那么暗指最近使用的关键字. 例如,not host vs and ace作为not host vs and host ace的简写形式, 不应该和not ( host vs or ace )混淆.表达式参数能够作为单个参数传给 tcpdump, 也能够作为复合参数, 后者更方便一些. 一般说来, 假如表达式包含 Shell 元字符(metacharacter), 传递单个括起来的参数要容易一些.复合参数在被解析前用空格联接一起.示例 (EXAMPLES)显示任何进出sundown的报文:host sundown显示helios和主机hot, ace之间的报文传送:host helios and \( hot or ace \)显示ace和除了helios以外的任何主机的 IP报文:ip host ace and not helios显示本地的主机和 Berkeley的主机之间的网络数据:net ucb-ether显示任何通过网关snup的 ftp 报文 (注意这个表达式被单引号括起, 防止 shell 解释园括弧):gateway snup and (port ftp or ftp-data)'显示既不是来自本地主机, 也不是传往本地主机的网络数据 (假如您把网关通往某个其他网络, 这个做法将不会把数据发往您的本地网络).ip and not net localnet显示每个 TCP会话的起始和结束报文 (SYN 和 FIN 报文), 而且会话方中有一个远程主机.tcp[13] & 3 != 0 and not src and dst net localnet'显示经过网关snup中大于 576 字节的 IP 数据报:gateway snup and ip[2:2] > 576'显示 IP 广播或多目传送的数据报, 这些报文不是通过以太网的广播或多目传送形式传送的: ether[0] & 1 = 0 and ip[16] >= 224'显示任何不是回响请求/应答的 ICMP 报文 (也就是说, 不是 ping 报文):icmp[0] != 8 and icmp[0] != 0"。