snoop是SUN操作系统下比较实用的一个网络抓包工具,用于捕获网络通信包并可以16进制的方式显示出来,便于通信程序调试,下面简要介绍用
法:
假设网关sgip协议(SP服务)的端口为7890,SMSC监听的端口为8011
如想查看网关与SP或其它网关的全部通信情况,命令如下:
snoop -ta -c100 -x0 ip port 7890 tcp | tee sp_comm.log
可以捕获7890端口上的100个包,并记录在sp_comm.log文件中,如不指定‘-c100’则一直捕获下去,直到用户按‘ctrl-c’终止。
参数‘-ta’表示记录当前时间,‘-x0’表示显示整个IP包内容,也可以指定‘-x54’只显示应用协议内容(TCP协议的头部为54字节),如:SGIP或
SMPP。
如想查看网关与某个SP的全部通信情况,命令如下:(SP地址为211.115.64.69)
snoop -ta -x0 211.115.64.69 and port 7890 tcp  | tee sp_comm.log
下面介绍一下包内容分析方式,例如:
      ............................................................................................数据包发生详细时间
      |            ...............................................................................源ip或主机名
      |            |      ........................................................................数据包方向
      |            |      |       ................................................................目的ip或主机名
      |            |      |       |       ........................................................协议类型
      |            |      |       |       |    ...................................................目的端口
      |            |      |       |       |    |      ............................................源端口
      |            |      |       |       |    |      |                                    .......应用协议长度
      |            |      |       |       |    |      |                                    |
10:55:58.96093 Sunfire4800-a -> 192.168.30.13 TCP D=8011 S=55933     Ack=600533 Seq=1247708918 Len=17 Win=24820
           0: 0006 2a8c 2ffc 0003 ba09 e778 0800 4500    ..*./\374.....x..E.
          16: 0039 d33f 4000 4006 141a c0a8 b407 c0a8    .9.?@.@.........
          32: 1e0d da7d 1f4b 4a5e 86f6 0009 29d5 5018    ...}.KJ^....).P.
          48: 60f4 861b 0000 0000 0011 8000 0005 0000    `...............
          64: 0000 0000 0034 00                          .....4.
上述消息是使用‘-x0’参数产生的,因此在分析时应从偏移55处开始(如上图兰色字体),该部分记录实际的通信数据,该示例是SMPP协议的一
个DELIVER_SM_RESP包(网关-短信中心)。

样例:
snoop -d hme1 -ta -x 54 192.168.30.150 and port 23520 and tcp
snoop -d eri0 -ta -x 54 192.168.30.152 and port 7799 and tcp
snoop -d ipge0 -ta -x 54 192.168.55.75 and port 8956 and tcp