最近,需要将wireshark监听的数据进行提取,分两步:首先,应该得出wireshark的数据包吧,在图形化界面中可以非常直观的将监听数据进行存储,但是这样需要手动操作非常麻烦,而且容易出错(随着处理数据包的数量增加,图形化可能吃不消,以前就遇见过),在linux下,采用了tshark命令,tshark就是wireshark图形界面命令行化,命令如下:

sudo tshark -f "udp port 1243"  -i eth0 (-w)> /tmp/capture.cap

对上面的命令进行解释:"udp port 1243",双引号内的东西就是对需要监听的内容进行一个筛选,也就是端口号为1243的udp数据包,-i后面就是需要监听的接口,接口后面的(-w)和(>)两个选项,表示需要存储文件的格式,-w存储的可能是二进制文件,例如,使用-w的话,那么这行命令执行以后capture.cap就是二进制的文件,那么使用>以后,则保存的文本文件,当然,现在需要的是纯文本文件,最后则是文件需要保存的路径以及名称。

第一步完成以后,则需要从数据中提取出来需要的数据,比如时间,源、目的地址等有用信息,我们采用如下命令:

sudo cat /tmp/capture.cap | awk'{print $1"\t" $2"\t" $3}' > /tmp/capture.txt 

此时cat的任务就是将需要被提取的文件展现出来,通过管道,将输出内容作为awk命令的输入,awk是一个非常好的数据处理工具。具体见鸟哥的私房菜基础篇363页!,同样的输出为纯文本格式文件capture.txt,完成了上述的工作,我想放入同一个脚本就能非常轻松的调用而且不用出错,将上述两行命令输入一个脚本中,但是我发现无法出来capture.txt文件,后来发现自己SB了,脚本是一行一行执行,第一行是一直执行的,根本执行不到第二行来,后来在第一行后面加上&,让其进行后台运行,capture.txt,倒是可以出来但是内容为空白,因为该文件仅仅在上面文件创建了就开始抓取自己的内容,当然什么也没有。

后来我想,我要的只是最后经过调整的数据,不需要中间数据啊,为什么不直接一条命令进行提取不就完了,于是将两个命令融合如下:

sudo tshark -f "udp port 1243" -i eth0 |awk '{print $1 "\t" $2 "\t" $3}' > /tmp/capture.txt 

从Wireshark监听的数据中提取需要的数据的更多相关文章

  1. sublime在混杂的log数据中提取你想要的内容

    前几天因为同事一个sql写的有问题,导致我这边处理mysql入库出现数据丢失,没什么办法啊,为了回复数据,只能去翻前两天的log了,但是怎么从十几个几十兆的文件中找到我们需要的数据然后提取出来呢,我的 ...

  2. 返回数据中提取数据的方法(JSON数据取其中某一个值的方法)

    返回数据中提取数据的方法 比如下面的案例是,取店铺名称 接口返回数据如下: {"Code":0,"Msg":"ok","Data& ...

  3. 如何实现从登录接口响应数据中提取JSESSIONID

    通过调用接口,对服务器产生压力,单接口测试,会遇到响应数据返回的是要求先登录.这是我们在调用这个接口时,根据业务逻辑,必须先登录才可以,比如:提交订单,那么就需要先获取用户登录的JSESSIONID, ...

  4. [MSSQL]找出一天数据中从第一条数据开始每累加1小时的数据

    用Sql Server找出一天数据中从第一条数据开始每累加1小时的数据 -- ============================================= -- Author: Alle ...

  5. ettercap+urlsnarf+driftnet+wireshark监听妹子上网

    搞事肯定得确认目标.所以我们得先确认一个目标 确认目标这种事情不多说.   1.开启IP转发 echo 1 > /proc/sys/net/ipv4/ip_forward 然后ettercap ...

  6. 如何从mysql备份中提取单张表数据

    1.先提取备份数据中的前50行出来,查看一下备份数据格式    head -50 bakdb.sql > head50.txt        类似下面的数据是我们所需要提取的:        / ...

  7. vue 监听父子组件传参,对象数据变化

    watch:{ 组件传参的字段 :{ handler (newV, oldV){ 这里打印 newV, oldV 就可以看到数据变化了 } , immediate: true, // 重点 deep: ...

  8. vue时时监听input输入框中 输入内容 写法

    Vue input 监听 使用 v-on:input="change" 实现即可 App.vue <template> <div> <md-field ...

  9. mac 下使用wireshark监听网络上的数据

    分三个步骤:    1.wireshark安装        wireshark运行需要mac上安装X11,mac 10.8的系统上默认是没有X11的.先去http://xquartz.macosfo ...

随机推荐

  1. 32-HTML辅助方法

    顾名思义,HTML辅助方法(HTML Helper)就是用来辅助产生HTML之用,在开发View的时候一定会面对许多HTML标签,处理这些HTML的工作非常繁琐,为了降低View的复杂度,可以使用HT ...

  2. 如何在linux系统下面编译C++(写给小白)(-1)

    首先 , 对于redhat,openSuse来说 ,C/C++的编译器已经集成了 大多数应该使用的是Ubuntu ,Ubuntu只有gcc(一个编译C语言的编译器), 因此还需要使用命令apt-get ...

  3. 初始jQuery

    JQuery是继prototype之后又一个优秀的Javascript库.它是轻量级的js库 ,它兼容CSS3,还兼容各种浏览器(IE 6.0+, FF1.5+, Safari 2.0+, Opera ...

  4. 关于for循环条件性能问题

    昨天看一博客写到一条 尽量使用 for(int i=0,ct=list.Count();i<ct;i++){} 这样的格式,因为我平时一般都是用for(int i=0;i<list.Cou ...

  5. A-Making the Grade(POJ 3666)

    Making the Grade Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 4656   Accepted: 2206 ...

  6. Kids and Prizes(SGU 495)

    495. Kids and Prizes Time limit per test: 0.25 second(s)Memory limit: 262144 kilobytes input: standa ...

  7. PHP可变长函数方法介绍

    1.三个重要函数 func_num_args()  返回实参个数 func_get_arg(i)    返回某个实参的值       func_get_args()        以数组的形式返回实参 ...

  8. spark 学习

    三种编译方式 1. 编译文档:more—>buiding spark 2. 三种编译方式:SBT,Maven,打包编译 make-distribution.sh 运行方式 local,stand ...

  9. swift 开眼今日精选

    swift 开眼今日精选 import UIKit class TodayController: UITableViewController { vararray =NSMutableArray() ...

  10. (DFS)hdoj1010-Tempter of the Bone

    #include<cstdio> #include<cmath> #include<stdlib.h> ][]={{,},{,-},{,},{-,}},escape ...