SNOOPY(8)SNOOPY(8)
NAME
snoopy – spy on network packets
SYNOPSIS
DESCRIPTION
The human readable format consists of multiple lines per packet.
The first line contains the milliseconds since the
trace was started. Subsequent ones are indented with a tab
and each contains the dump of a single protocol header. The last line
contains the dump of any contained data. For example, a
324389 ms ether(s=0000929b1b54 d=ffffffffffff pr=0800 ln=342) ip(s=135.104.9.62 d=255.255.255.255 id=5099 frag=0000... udp(s=68 d=67 ck=d151 ln= 308) bootp(t=Req ht=1 hl=16 hp=0 xid=217e5f27 sec=0 fl=800... dhcp(t=Request clientid=0152415320704e7266238ebf01030...
The binary format consists of:
2 bytes of packet length, msb first
8 bytes of nanosecond time, msb first
the packet
Filters are expressions specifying protocols to be traced and specific values for fields in the protocol headers. The grammar is:
expr: protocol | field '=' value | field '!=' value | protocol '(' expr ')' | '(' expr ')' | expr '||' expr | expr '&&' expr | '!' expr
The values for
ether's filter attributes: s - source address d - destination address a - source|destination address sd - source|destination address t - type ether's subprotos: 0x0800 ip 0x8863 pppoe_disc 0x0806 arp 0x8864 pppoe_sess 0x0806 rarp 0x888e eapol 0x86dd ip6
The format of
compute the correct checksum for each packet;
on mismatch, add a field
output will be a binary trace file in Unix pcap format.
output will be a binary trace file.
input is a binary trace file as generated with the
do not enter promiscuous mode. Only packets to this interface will be seen.
force one output line per packet. The default is multiline.
discard all but the first
dump
use
assume the first header per packet to be of the
EXAMPLES
To display only
% snoopy -f 'arp || bootp' after optimize: ether(arp || ip(udp(bootp)))
The first line of output shows the completed filter
expression.
To save all packets between 135.104.9.2 to 135.104.9.6 and later display those to/from TCP port 80:
% ramfs % snoopy -df 'ip(s=135.104.9.2 && d=135.104.9.6) ||\\ ip(s=135.104.9.6 && d=135.104.9.2)' > /tmp/quux <interrupt from the keyboard> % snoopy -tf 'tcp(sd=80)' /tmp/quux
FILES
Ethernet device