当数字88888888序列化后在网络上传输, 通过网络抓包, 保存在a.txt中, 那怎么过滤查找88888888呢?

       tcpdump -iany port xxx -Xnlps0 > a.txt

       

       为了完备性, 需要先后考虑如下两条命令(考虑各种可能的这行, 在绝大多数时候, 如下一条就基本OK):

       cat a.txt | awk '{$1=$10=""; print}' | sed "s/ //g" | sed "1i\abcd" | sed "N;s/\n//g" | grep -C100 --color `printf %x 88888888`

       cat a.txt | awk '{$1=$10=""; print}' | sed "s/ //g" | sed "1i\abcd\n" | sed "N;s/\n//g" | grep -C100 --color `printf %x 88888888`


       用起来了, 很爽。 要记得哦, 多次用grep来过滤tcpdump抓包, 会有缓存, 所以应该先保存到a.txt中。

       上述命令的解释如下:

        awk '{$1=$10=""; print}'   过滤列

        sed "s/ //g"                       删除所有空格

        sed "1i\abcd"                   在第一行最前面塞入abcd,  其实无用

        sed "1i\abcd"                   增加abcd为第一行, 主要是考虑折行

        sed "N;s/\n//g"                 将1.2, 3.4, 5.6分别折成一行

        `printf %x 88888888`       求16进制


        OK, 到此为止。




        




本文转载:CSDN博客