tshark是wireshark的命令行工具,经过shell命令抓取、解析报文。tcpdump是Linux系统下的抓包工具。wireshark和tcpdump都共同使用 libpcap做为其底层抓包的库,tshark也能够抓取报文。html

有时候须要在linux系统或者ARM开发板中进行抓包,使用tcpdump抓包更加方便,在这种场景下,通常使用tcpdump进行抓包,而后在Windows中使用wireshark来分析生成的包文件,在自动化分析或者自动化测试中,可使用tshark来进行包解析。本文介绍使用tcpdump抓取报文后使用tshark进行报文解析。python

安装

# linux

yum -y install wireshark

yum -y install tcpdump

tcpdump抓包

抓包

抓取eth1网卡数据包,数据写入文件/tmp/packet.pcapjson

tcpdump -i eth1 -w /tmp/packet.pcap >/dev/null 2>&1 &

其中windows

>/dev/null:将标准输出(控制台输出)重定向到/dev/null中,/dev/null表明 linux 的空设备文件。表示不输出内容

2>&1:重定向绑定,错误输出(2)和标准输出(1)输出到同一个地方

>/dev/null 2>&1的做用就是丢弃标准输出和错误输出,不会输出任何信息到控制台。

也能够只抓取特定协议的报文,好比过滤tcp报文:bash

tcpdump -i eth1 tcp -w /tmp/packet.pcap >/dev/null 2>&1 &

中止抓包

若是没有限制 tcpdump 抓包的数量(-c 参数),tcpdump 会持续抓包。能够经过 Ctrl+C 来中止抓包,或者杀掉tcpdump进程:tcp

killall -9 tcpdump

杀掉tcpdump进程后会中止抓包。工具

tshark命令解析数据包

抓包完成后对数据包进行解析,下面介绍使用tshark解析数据包。测试

tshark工具介绍

若是要在windows命令行窗口使用tshark须要将Wireshark安装路径 C:\Program Files\Wireshark 添加到环境变量。

Linux系统和windows系统tshark使用方法同样

tshark命令解析数据包

经常使用参数:

-r:指定须要解析的数据包

-T:指定数据包解析输出格式,支持格式见解码全部数据,这里介绍 -T fields,通常与-e 选项连用。

-e:指定过滤的字段

-E:可用于指定分隔符:separator=,:默认分隔符为缩进(\t)

-Y:过滤指定报文

tshark [ -r  ]  -T fields [ -e  ] -E -Y

tshark -r packet.pcap -T fields -e 解析的字段 -E separator=,

须要解析的字段能够经过Wireshark查看:

选择要过滤的内容 -> 右键 -> Apply as Filter -> Selected

例1:过滤具备源IP和目的IP字段的全部报文

tshark -r packet.pcap -T fields -e ip.src -e ip.dst

例2:过滤源地址为fe80::ca3a:35ff:fe09:efa1的DHCPv6 Solicit报文,并读取UDP源端口号和IPv6目的地址。

$ tshark -r packet.pcap -T fields -E separator=, -Y dhcpv6.msgtype==1 -Y ipv6.src==fe80::ca3a:35ff:fe09:efa1 -e udp.srcport -e ipv6.dst

,ff02::2

,ff02::2

,ff02::16

546,ff02::1:2

546,ff02::1:2

546,ff02::1:2

546,ff02::1:2

$

过滤完成后进行进一步的分析

好比可使用grep命令进一步提取知足条件的报文

过滤源地址或者目的地址为192.168.5.38的报文

# linux

tshark -r packet.pcap -T fields -e ip.src -e ip.dst | grep 192.168.5.38

# windows

tshark -r packet.pcap -T fields -e ip.src -e ip.dst | findstr 192.168.5.38

也可使用python、Java等高级语言进行进一步的分析,Python示例以下:

result = os.popen("tshark -r packet.pcap -T fields -e ip.src -e ip.dst“)

ret = result.read() #

for i, value in enumerate(ret.split("\n")):

处理value值

pass

解码全部数据

某些字段可能没法使用tshark过滤,这种状况下,能够先将pcap文件解码,tshark支持以下文件格式:

ek|fields|json|jsonraw|pdml|ps|psml|tabs|text

解码成xml和text格式文件:

tshark -r packet.pcap -V -T pdml > packet.xml

tshark -r packet.pcap -V -T text > packet.txt

-V:输出数据包详细信息

-T pdml:指定数据包解码输出格式为xml格式

xml文档可使用python的ElementTree工具解析:

try:

import xml.etree.cElementTree as ET

except ImportError:

import xml.etree.ElementTree as ET

问题:windows tshark命令无效

系统:windows10

tshark已加入环境变量中

输入tshark,显示:

C:\Users\DELL>tshark

The NPF driver isn't running. You may have trouble capturing or

listing interfaces.

Capturing on '鏈湴杩炴帴* 9'

WIreshark安装须要安装WinPcap,查看电脑已经安装了WinPcap。

接下来以管理员身份运行命令行串口,输入net start npf 启动NPF,出现以下报错信息:

C:\WINDOWS\system32>net start npf

服务名无效。

请键入 NET HELPMSG 2185 以得到更多的帮助。

从新输入net start npf 启动NPF:

C:\WINDOWS\system32>net start npf

请求的服务已经启动。

请键入 NET HELPMSG 2182 以得到更多的帮助。

启动成功!

tshark命令也能够正常使用了

--THE END--

文章标题:tcpdump抓包及tshark命令解包方法介绍

本文做者:hiyo

本文连接:https://www.cnblogs.com/hiyong/p/14288239.html

欢迎关注公众号:「测试开发小记」及时接收最新技术文章!

python解包dump,tcpdump抓包及tshark解包方法介绍相关推荐

  1. python爬虫beautifulsoup爬当当网_Python爬虫包 BeautifulSoup 递归抓取实例详解_python_脚本之家...

    Python爬虫包 BeautifulSoup  递归抓取实例详解 概要: 爬虫的主要目的就是为了沿着网络抓取需要的内容.它们的本质是一种递归的过程.它们首先需要获得网页的内容,然后分析页面内容并找到 ...

  2. Python爬虫包 BeautifulSoup 递归抓取实例详解

    Python爬虫包 BeautifulSoup 递归抓取实例详解 概要: 爬虫的主要目的就是为了沿着网络抓取需要的内容.它们的本质是一种递归的过程.它们首先需要获得网页的内容,然后分析页面内容并找到另 ...

  3. 四、小程序|App抓包(四)-Tcpdump抓取手机数据包分析

    小程序|App抓包(四) Tcpdump抓取手机数据包分析 一.环境需求: 1.手机需要root 2.电脑上安装SDK(建议安装android studio)也可单独安装SDk也行 下载地址 : ht ...

  4. 【linux测试必背| tcpdump】命令行抓包神器 | tcpdump抓取post请求并显示详细参数

    命令行抓包神器 | tcpdump抓取post请求并显示详细参数 知识背景(diu ren 经历) 1. tcpdump抓包工具捕捉tcp请求 三次握手和四次挥手 适用场景: 命令格式: 2. tcp ...

  5. tcpdump抓两个网卡的包_如何抓取网络包?两个方法告诉你

    本文转载自[微信公众号:手机电脑双黑客,ID:heikestudio],经微信公众号授权转载,如需转载与原文作者联系 世界那么大,谢谢你来看我!!关注我你就是个网络.电脑.手机小达人 显形" ...

  6. tcpdump抓两个网卡的包_tcpdump 抓包统计 分享助,请问用tcpdump抓包后,如何查看每个包...

    如何用tcpdump抓包统计流量 TCPDUMP 抓包 怎么查看 抓的包的内容小编们每天忙忙碌碌,谁还记得小时候那些大大"的梦想.多久,没有停下脚步,哪怕只是单纯的晒晒太阳.现在的人,科技先 ...

  7. Wireshark抓包以及tcpdump抓包

    tcpdump抓包命令 tcpdump 的抓包保存到文件的命令参数是-w xxx.cap 抓eth1的包 tcpdump -i eth1 -w /tmp/xxx.cap,.cap文件可以用wiresh ...

  8. python发送短信内容_Python实现发短信的方法介绍(附代码)

    本篇文章给大家带来的内容是关于Python发短信的方法介绍(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. #首先注册互亿无线,然后复制发短信界面右上角的apiid和apik ...

  9. tcpdump抓两个网卡的包_软路由 tcpdump抓包详解: 网口详解、抓包详解、多网卡同时抓包...

    软路由详解: 我的软路由有四张千兆网卡.其中Eth3是WAN口,Eth012是三个LAN口,Eth0接网线连接一台PC,Eth1连接一台无线路由器,Eth2未使用. 进入软路由系统中用ifconfig ...

最新文章

  1. html iso标准文档,HTML ISO-8859-1 参考手册
  2. 如何删除chrome地址栏里面曾经输错的地址
  3. Android base64 上传图片
  4. go mysql 乱码_MySQL 乱码之我见
  5. ngx_connection_t结构体
  6. 转 Python爬虫入门一之综述
  7. 【M1芯片兼容】office 2021 Mac正式版最新更新
  8. linux跨ip拷贝,Linux的虚拟机拷贝到另外的操作系统时,NAT方式的静态IP无效,一直是获取的DHCP动态地址...
  9. 命令02-pandas命令
  10. timespan怎么比较大小_万能小哥丨厨房墙砖哪种好?厨房墙砖怎么挑选?
  11. 算法“视”界杯上演十强争锋,大赛终极一战圆满落幕
  12. 关于codeblock中一些常用的快捷键(搬运)
  13. AutoRunner 功能自动化测试项目实训之第二个实战案例(五)
  14. CNI插件之bridge plugin
  15. 长期性喝茶的好处和弊端
  16. python生词本的生词_词汇小助手V1.1——引入自动翻译和在线词典功能
  17. 高级转录组分析和R数据可视化火热报名中(2022.10)
  18. 做自媒体,学视频剪辑须知的四大宝藏网站
  19. 汽车自动驾驶级别分类
  20. 尼姆游戏-取硬币游戏

热门文章

  1. AS Gradle 8.0 配置 + Realm 使用
  2. 视频压缩编码标准,深入浅出,图文并茂
  3. 你绝不能错过的效率神器 —— Alfred
  4. 鸡兔同笼 需求:今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?
  5. 计算机毕业设计Java博物馆信息管理(源码+系统+mysql数据库+lw文档)
  6. Unity Animation 动画相关总结
  7. Java下HttpUnit和Jsoup的Http抓取
  8. YOLOv5/v7/v8首发原创改进《新颖轻量化非对称多级压缩LADH检测头》即插即用|原创改进轻量新颖ADH非对称多级压缩检测头,检测头新颖改进,YOLO检测器性能高效涨点
  9. 【教程】腾讯云智服客服系统快速上手指南
  10. 基于QT(C++)实现(窗体)平台类对战游戏【100010513】