当数字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, 到此为止。