对应的Solaris平台下抓包方法
#snoop -x 0 udp to 192.168.23.1
#snoop -x 0 tcp from 192.168.23.10
#snoop -x 0 -t a -d eri udp port 1645
按照时间来抓包:
#snoop -x 0 -t a -d hme1 from 192.168.1.28
抓指定地址和端口的包并保存到当前的log2文件中:
#snoop -x from 192.168.23.1 tcp 80 >> log2.log
抓包还可以放在后台来让其自动运行,防止关闭窗口时就没有了:
#csh    /先进入csh环境下/                                                       
#nohup snoop -x 0 -t a -d hme1 from 192.168.1.28 >>snoop.log & /&表示在后台运行/

snoop 抓包
[color=Red]solaris自带snoop抓包工具,抓所有数据流[/color]
# snoop
Using device /dev/pcn0 (promiscuous mode)
192.168.23.1 -> 192.168.255.255 [color=Red]NBT [/color]NS Query Request for WORKGROUP[1c], Success
192.168.253.35 -> solaris      [color=Red]TELNET [/color]C port=1246
     solaris -> 192.168.253.35 TELNET R port=1246 Using device /dev/pc
     solaris -> 192.168.253.35 TELNET R port=1246 Using device /dev/pc
192.168.4.150 -> (broadcast)  [color=Red]ARP [/color]C Who is 192.168.4.200, 192.168.4.200 ?
192.168.4.200 -> (broadcast)  ARP C Who is 192.168.4.150, 192.168.4.150 ?
#
[color=Red]抓源地址或目的为 202.101.98.55的数据流:[/color]
# snoop 202.101.98.55
Using device /dev/pcn0 (promiscuous mode)
192.168.253.35 -> dns.fz.fj.cn DNS C www.163.com. Internet Addr ?
dns.fz.fj.cn -> 192.168.253.35 DNS R www.163.com. Internet CNAME
#
说明:internet cname 后的为解析 www.163.com的名字时,代表 www.163.com回答的主机的域名。
[color=Red]抓 192.168.253.35和202.101.98.55之间的数据流(双向都抓)[/color]
# snoop 192.168.253.35 202.101.98.55
Using device /dev/pcn0 (promiscuous mode)
192.168.253.35 -> dns.fz.fj.cn DNS C www.google.com. Internet Addr ?
dns.fz.fj.cn -> 192.168.253.35 DNS R www.google.com. Internet CNAME
#
[color=Red]抓完存在当前目录下的cap文件中并查看[/color]
# snoop -o cap1 -P      -P表示处在非混杂模式抓数据,只抓广播、主播、目的为本机的数据
Using device /dev/pcn0 ([color=Blue]non promiscuous[/color])
15 ^C                           15的含义是:显示目前抓了多少个数据流
#
# snoop -i cap1
  1   0.00000 192.168.253.35 -> solaris      TELNET C port=1246
  2   0.18198 192.168.253.35 -> solaris      TELNET C port=1246
  3   0.37232 192.168.4.199 -> 192.168.255.255 NBT Datagram Service Type=17 Source=WB-200[20]
  4   0.00016            ? -> (multicast)  ETHER Type=EF08 (Unknown), size = 180bytes
  5   0.62546 192.168.253.35 -> solaris      TELNET C port=1246
  6   0.13822            ? -> (multicast)  ETHER Type=0000 (LLC/802.3), size = 52 bytes
  7   0.06283 192.168.253.35 -> solaris      TELNET C port=1246
  8   0.90301 192.168.253.35 -> solaris      TELNET C port=1246
  9   0.19781 192.168.253.35 -> solaris      TELNET C port=1246
10   0.81493            ? -> (multicast)  ETHER Type=0000 (LLC/802.3), size = 52 bytes
11   0.07018 192.168.253.35 -> solaris      TELNET C port=1246
12   0.19939 192.168.253.35 -> solaris      TELNET C port=1246
13   0.90151 192.168.253.35 -> solaris      TELNET C port=1246
14   0.18904 192.168.253.35 -> solaris      TELNET C port=1246
15   0.68422            ? -> (multicast)  ETHER Type=0000 (LLC/802.3), size = 52 bytes
#snoop -i cap1 -p 10,12            只看10-12条记录
#snoop -i cap1 -p10                  只看第10条记录
# snoop -i cap1 -v -p101            查看第10条数据流的包头的详细内容
#snoop -i cap1 -v -x 0 -p101   查看第10条数据流的全部的详细内容
[color=Red]抓主机192.168.253.35和202.101.98.55之间的tcp或者udp端口53的数据
# snoop 192.168.253.35 and 202.101.98.55 and \(tcp or udp\) and port 53
 

snoop的详细参数
Snoop 是Solaris 系统中自带的工具, 是一个用于显示网络通讯的程序, 它可捕获IP 包并将其显示或保存到指定文件. (限超级用户使用snoop)
Snoop 可将捕获的包以一行的形式加以总结或用多行加以详细的描述(有调用不同的参数–v -V来实现). 在总结方式下(-V ) , 将仅显示最高层的相关协议, 例如一个NFS 包将仅显示NFS 信息, 其低层的RPC, UDP, IP, Ethernet 帧信息将不会显示, 但是当加上相应的参数(-v ), 这些信息都能被显示出来.
-C
-D
-N
-P 在非混杂模式下抓包
-S 抓包的时候显示数据包的大小
-V 半详细的显示抓的数据的信息
-t [ r | a | d ] 显示时间戳,-ta显示当前系统时间,精确到毫秒
-v 最详细的显示数据的信息
-x offset [ , length] 以16进制或ACSII方式显示某数据的部分内容,比如 -x 0,10 只显示0-10字节
#snoop -i cap1 -v -x 0 -p101 查看被抓获的第101个数据流的全部内容

[color=Red]表达式:[/color]
根据地址:
#snoop x.x.x.x         IPV4的IP
#snoop 0XX:XX:XX:XX    ETHERNET的MAC地址
数据的方向:
from x.x.x.x 或者 src x.x.x.x
to x.x.x.x 或者 dst x.x.x.x
可用的数据类型的关键词:
ip, ip6, arp, rarp, pppoed, pppoes,pppoe,broadcast,multicast,apple,decnet
udp, tcp, icmp, icmp6, ah, esp
greater length
      True if the packet is longer than length.
less length
      True if the packet is shorter than length.
net net
# snoop from net 192.168.1.0 抓来自192.168.1.0/24的数据
# snoop from net 192.168.0.0 抓来自192.168.0.0/16的数据
port xx XX为TCP或者UDP的端口号或者 /etc/services里定义的名字
#snoop to udp and port 53    抓到UDP53的数据