python之用scapy分层解析pcap报文(Ethernet帧、IP数据包、TCP数据包、UDP数据包、Raw数据包)

本文介绍了如何利用Python的scapy库进行网络报文的分层解析,包括从pcap文件中读取数据、实时抓包,以及如何展示和提取Ethernet帧、IP数据包、TCP/UDP数据包和Raw数据包的属性信息。
摘要由CSDN通过智能技术生成

一、工具准备

  下载安装scapy库(https://blog.csdn.net/qq_23977687/article/details/88046257)

  安装完后: 

  ls()  命令可以查看所有支持的协议
  ls(IP) 命令列出ip协议头部字段格式,只要想查看哪个协议的参数,括号里就填哪个协议
  IP().show() 列出ip包的信息
  lsc() 命令列出scapy的所有命令 
  conf 命令列出scapy 的配置参数

二、scapy用法

   scapy是python中一个可用于网络嗅探的非常强大的第三方库,可以用它来做 packet 嗅探和伪造 packet。 scapy已经在内部实现了大量的网络协议。如DNS、ARP、IP、TCP、UDP等等,可以用它来编写非常灵活实用的工具。

换言之,Scapy 是一个强大的操纵报文的交互程序。它可以伪造或者解析多种协议的报文,还具有发送、捕获、匹配请求和响应这些报文以及更多的功能。Scapy 可以轻松地做到像扫描(scanning)、路由跟踪(tracerouting)、探测(probing)、单元测试(unit tests)、攻击(attacks)和发现网络(network discorvery)这样的传统任务。它可以代替 hping 、arpspoof 、arp-sk、arping,p0f 甚至是部分的Namp、tcpdump 和 tshark 的功能。

1.1、得到数据

  有两种方式,实时抓包,读取 pcap文件
  1.1.1 实时抓包:scapy抓包使用 sniff() 函数,这个函数有很多参数

def sniff(count=0, store=1, offline=None, prn=None,filter=None, L2socket=None, timeout=None, opened_socket=None, stop_filter=None, iface=None,*args,**kargs)

  count:抓包的数量,0表示无限制;
  store:保存抓取的数据包或者丢弃,1保存,0丢弃
  offline:从 pcap 文件读取数据包,而不

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值