ngrep命令用法

ngrep 是grep(在文本中搜索字符串的工具)的网络版,他力求更多的grep特征,用于搜寻指定的数据包。正由于安装ngrep需用到libpcap库, 所以支持大量的操作系统和网络协议。能识别TCP、UDP和ICMP包,理解bpf的过滤机制。

语法

1

2

3

ngrep <-LhNXViwqpevxlDtTRM> <-IO pcap_dump> <-n num> <-d dev> <-A num>

<-s snaplen> <-S limitlen> <-W normal|byline|single|none> <-c cols>

<-P char> <-F file> <match expression> <bpf filter>

选项

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

-h     is help/usage

-V    is version information

-q    is be quiet (don‘t print packet reception hash marks)静默模式,如果没有此开关,未匹配的数据包都以“#”显示

-e    is show empty packets 显示空数据包

-i     is ignore case 忽略大小写

-v    is invert match 反转匹配

-R   is don‘t do privilege revocation logic

-x    is print in alternate hexdump format 以16进制格式显示

-X   is interpret match expression as hexadecimal 以16进制格式匹配

-w   is word-regex (expression must match as a word) 整字匹配

-p   is don‘t go into promiscuous mode 不使用混杂模式

-l     is make stdout line buffered

-D   is replay pcap_dumps with their recorded time intervals

-t     is print timestamp every time a packet is matched在每个匹配的包之前显示时间戳

-T    is print delta timestamp every time a packet is matched显示上一个匹配的数据包之间的时间间隔

-M   is don‘t do multi-line match (do single-line match instead)仅进行单行匹配

-I     is read packet stream from pcap format file pcap_dump 从文件中读取数据进行匹配

-O   is dump matched packets in pcap format to pcap_dump 将匹配的数据保存到文件

-n    is look at only num packets 仅捕获指定数目的数据包进行查看

-A   is dump num packets after a match匹配到数据包后Dump随后的指定数目的数据包

-s    is set the bpf caplen

-S   is set the limitlen on matched packets

-W  is set the dump format (normal, byline, single, none) 设置显示格式byline将解析包中的换行符

-c    is force the column width to the specified size 强制显示列的宽度

-P   is set the non-printable display char to what is specified

-F   is read the bpf filter from the specified file 使用文件中定义的bpf(Berkeley Packet Filter)

-N   is show sub protocol number 显示由IANA定义的子协议号

-d   is use specified device (index) instead of the pcap default

Allowable primitives are:
dst host host
True if the IP destination field of the packet is host, which may be either an address or a name.

src host host
True if the IP source field of the packet is host.

host host
True if either the IP source or destination of the packet is host. Any of the above host expressions can be prepended with the
keywords, ip, arp, or rarp as in:
ip host host
which is equivalent to:

ether dst ehost
True if the ethernet destination address is ehost. Ehost may be either a name from /etc/ethers or a number (see ethers(3N) for
numeric format).

ether src ehost
True if the ethernet source address is ehost.

ether host ehost
True if either the ethernet source or destination address is ehost.

gateway host
True if the packet used host as a gateway. I.e., the ethernet source or destination address was host but neither the IP source
nor the IP destination was host. Host must be a name and must be found in both /etc/hosts and /etc/ethers. (An equivalent
expression is
ether host ehost and not host host
which can be used with either names or numbers for host / ehost.)

dst net net
True if the IP destination address of the packet has a network number of net. Net may be either a name from /etc/networks or a
network number (see networks(4) for details).

src net net
True if the IP source address of the packet has a network number of net.

net net
True if either the IP source or destination address of the packet has a network number of net.

net net mask mask
True if the IP address matches net with the specific netmask. May be qualified with src or dst.

net net/len
True if the IP address matches net a netmask len bits wide. May be qualified with src or dst.

dst port port
True if the packet is ip/tcp or ip/udp and has a destination port value of port. The port can be a number or a name used in
/etc/services (see tcp(4P) and udp(4P)). If a name is used, both the port number and protocol are checked. If a number or
ambiguous name is used, only the port number is checked (e.g., dst port 513 will print both tcp/login traffic and udp/who traf-
fic, and port domain will print both tcp/domain and udp/domain traffic).
src port port
True if the packet has a source port value of port.

port port
True if either the source or destination port of the packet is port. Any of the above port expressions can be prepended with
the keywords, tcp or udp, as in:
tcp src port port
which matches only tcp packets whose source port is port.

less length
True if the packet has a length less than or equal to length. This is equivalent to:
len <= length.

greater length
True if the packet has a length greater than or equal to length. This is equivalent to:
len >= length.

ip proto protocol
True if the packet is an ip packet (see ip(4P)) of protocol type protocol. Protocol can be a number or one of the names tcp,
udp or icmp. Note that the identifiers tcp and udp are also keywords and must be escaped via backslash (\), which is \\ in the
C-shell.

ip broadcast
True if the packet is an IP broadcast packet. It checks for both the all-zeroes and all-ones broadcast conventions, and looks
up the local subnet mask.

ip multicast
True if the packet is an IP multicast packet.

ip Abbreviation for:
ether proto ip

tcp, udp, icmp
Abbreviations for:
ip proto p
where p is one of the above protocols.

实例

抓本机eth0 与192.168.1.9的通信信息,并且以行来打印出来

1

#ngrep -d eth0 -W byline host 192.168.1.9

抓本机与192.168.1.8的通信端口为80(本机)的信息

1

# ngrep -W byline host 192.168.1.8 and port 80

抓本机与192.168.1.8和192.168.1.9的通信,并且本地端口为80

1

#ngrep -W byline host 192.168.1.8 or host 192.168.1.9 port 80

抓udp包

1

#ngrep host 192.168.1.8 udp

统计请求头长度

1

# ngrep -W byline ‘GET /‘ ‘tcp and dst port 80‘ -d eth1 | awk -v RS="#+" -v FS="\n" ‘{ print length() }‘

查询一下大于 1K 的请求头

1

# ngrep -W byline ‘GET /‘ ‘tcp and dst port 80‘ -d eth1 |  awk -v RS="#+" -v FS="\n" ‘length() > 1000‘

原文地址:https://www.cnblogs.com/DataArt/p/10231335.html

时间: 2024-10-15 00:34:21

ngrep命令用法的相关文章

20.1 Shell脚本介绍;20.2 Shell脚本结构和执行;20.3 date命令用法;20.4 Shell脚本中的变量

20.1 Shell脚本介绍 1. shell是一种脚本语言 aming_linux blog.lishiming.net 2. 可以使用逻辑判断.循环等语法 3. 可以自定义函数 4. shell是系统命令的集合 5. shell脚本可以实现自动化运维,能大大增加我们的运维效率 20.2 Shell脚本结构和执行 1. 开头(首行)需要加: #!/bin/bash 2. 以#开头的行作为解释说明: 3. 脚本的名字以.sh结尾,用于区分这是一个shell脚本 4. 执行.sh脚本方法有两种:

mysql常用命令用法

1.创建数据库:create database database_name; 2.选择数据库:use database_name; 3.创建表:create table tablename(column1 data_type1, column2 data_type2,...,columnn datatypen); 4.设置表主键:alter table tablename add primary key(column_name); 5:修改表的字段名:alter table tablename

linux wget 命令用法详解(附实例说明)

Linux wget是一个下载文件的工具,它用在命令行下.对于Linux用户是必不可少的工具,尤其对于网络管理员,经常要下载一些软件或从远程服务器恢复备份到本地服务器.如果我们使用虚拟主机,处理这样的事务我们只能先从远程服务器下载到我们电脑磁盘,然后再用ftp工具上传到服务器.这样既浪费时间又浪费精力,那不没办法的事.而到了Linux VPS,它则可以直接下载到服务器而不用经过上传这一步.wget工具体积小但功能完善,它支持断点下载功能,同时支持FTP和HTTP下载方式,支持代理服务器和设置起来

Linux chmod命令用法

chmod----改变一个或多个文件的存取模式(mode) chmod [options] mode files 只能文件属主或特权用户才能使用该功能来改变文件存取模式.mode可以是数字形式或以who opcode permission形式表示.who是可选的,默认是a(所有用户).只能选择一个opcode(操作码).可指定多个mode,以逗号分开. options: -c,--changes 只输出被改变文件的信息 -f,--silent,--quiet 当chmod不能改变文件模式时,不通

&lt;Linux系统uname命令用法&gt;

uname命令:操作系统信息的显示 uname 命令主要用于显示操作系统的信息,包括版本.平台的信息. 它的参数主要有以下: -a 显示全部信息 -s 显示内核名称 -n 显示主机名 -r 显示当前系统的内核版本 -m 显示主机的硬件名称 -p 显示处理器的类型 -i 显示主机的硬件平台 -o 显示所使用的操作系统的名称 下面来看一看: [[email protected] ~]# uname -a Linux redhat.example.com 2.6.32-279.el6.i686 #1

【转】 wget 命令用法详解

wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上.它有以下功能和特点:(1)支持断点下传功能:这一点,也是网络蚂蚁和FlashGet当年最大的卖点,现在,Wget也可以使用此功能,那些网络不是太好的用户可以放心了:(2)同时支持FTP和HTTP下载方式:尽管现在大部分软件可以使用HTTP方式下载,但是,有些时候,仍然需要使用FTP方式下载软件:(3)支持代理服务器:对安全强度很高的系统而言,一般不会将自己的系统直接暴

【转】定时自动启动任务crontab命令用法

每个操作系统都有它的自动定时启动程序的功能,Windows有它的任务计划,而Linux对应的功能是crontab. crontab简介 crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行.该词来源于希腊语 chronos(χρ?νος),原意是时间. 通常,crontab储存的指令被守护进程激活, crond常常在后台运行,每一分钟检查是否有预定的作业需要执行.这类作业一般

shell 命令用法

最近因为编译一些文件,刚开始接触一些shell命令,感觉很神奇,用途还蛮大的,所以做了一些笔记,命令的顺序可能比较乱,功能也不会说的很全. 1. Cut 命令 Cut 命令用来截取字符中的某一段,很靠谱,cut命令有5个参数,其中-c,-b,-f分别表示"character", "byte"以及"field"截取方式.这三种截取方式只能采用一种? 以下列举出两种用法: (1): echo hello, world | cut -c 8-12  

linux学习:特殊符号,数学运算,图像与数组与部分终端命令用法整理

一:特殊符号用法整理 算术比较-eq 等于-ne 不等于-gt 大于-lt 小于-ge 大于或等于-le 小于或等于-a 逻辑与 and &&-o 逻辑或 or ||[ $var -eq 0 ]    #当$var等于0时,返回真[ $var -ne 0 ]    #当$var为非0时,返回真[ $var1 -ne 0 -a $var2 -gt 2 ][ $var1 -ne 0 -o $var2 -gt 2 ] 字符串比较[[ $str1 = $str2 ]]     #当str1等于st