scapy

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

scapy安装:

pip install scapy 

安装完后:

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

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 文件读取数据包,而不进行嗅探,默认为None
  • prn:为每一个数据包定义一个函数,如果返回了什么,则显示。例如:prn = lambda x: x.summary(); (  packct.summar()函数返回的是对包的统计性信息 )
  • filter:过滤规则,使用wireshark里面的过滤语法
  • L2socket:使用给定的 L2socket
  • timeout:在给定的时间后停止嗅探,默认为 None
  • opened_socket:对指定的对象使用 .recv() 进行读取;
  • stop_filter:定义一个函数,决定在抓到指定数据包后停止抓包,如:stop_filter = lambda x: x.haslayer(TCP);
  • iface:指定抓包的接口

使用scapy抓包:

from scapy.all import *# scapy抓包:
def catch_pack():sniff(prn=printPacket,filter="tcp")# 抓包监听
def printPacket(packet):wrpcap('foo.pcap', [packet])

dpkt

dpkt是一个python模块,可以对简单的数据包创建/解析,以及基本TCP / IP协议的解析,速度很快。

dpkt读取每个pcap包里的内容,用isinstance判断是不是有IP的包,再判断是属于哪个协议,对应的协议已经封装好API如果发现可以匹配某个协议API就输出来相关值。

dpkt — dpkt 1.9.2 documentationhttps://dpkt.readthedocs.io/en/latest/

dpkt安装:

pip install dpkt

使用dpkt解包:

# dpkt解包
def decodePacket(timestamp, packet_data):packet = dpkt.ethernet.Ethernet(packet_data)if not isinstance(packet.data, dpkt.ip.IP):returnif not isinstance(packet.data.data, dpkt.tcp.TCP):returnhttpData = packet.data.data.dataif len(httpData) < 4:returnreq = dpkt.http.Request(httpData)headers = {}for k,v in req.headers.items():headers[k] = vprint("request+++>timestamp:",timestamp)print("request+++>headers:",headers)print("request+++>method:", req.method)print("request+++>uri:", req.uri)print("request+++>body:", req.body)try:response = dpkt.http.Response(httpData) # 尝试以HTTP读取响应print("response:",response)except:print("decode http response error")
def readPacket(packet):try:with open('foo.pcap', 'rb') as f:capture = dpkt.pcap.Reader(f)for timestamp, packet in capture: # 键值对,提取packet进行解码decodePacket(timestamp, packet)except:pass

Python使用scapy和dpkt抓包并解析相关推荐

  1. pcap python 生成_python+pcap+dpkt 抓包小实例

    1 #!/usr/bin/env python 2 #-*- coding: utf-8 -*- 3 4 """网络数据包捕获与分析程序""" ...

  2. pcap python 生成_python+pcap+dpkt抓包小实例

    #!/usr/bin/env python#-*- coding: utf-8 -*- """网络数据包捕获与分析程序""" importp ...

  3. python 抓包 scapy udp,python+scapy 抓包與解析

    最近一直在使用做流量分析,今天把 scapy 部分做一個總結. python 的 scapy 庫可以方便的抓包與解析包,無奈資料很少,官方例子有限,大神博客很少提及, 經過一番嘗試后,總結以下幾點用法 ...

  4. python抓包代码_Python抓包并解析json爬虫的完整实例代码

    Python抓包并解析json爬虫FwA免费资源网 在使用Python爬虫的时候,通过抓包url,打开url可能会遇见以下类似网址,打开后会出现类似这样的界面,无法继续进行爬虫:FwA免费资源网 Fw ...

  5. 【Python】【进阶篇】十六、Python爬虫的浏览器实现抓包

    目录 十六.Python爬虫的浏览器实现抓包 16.1 控制台界面 16.1.1 NetWork 16.1.2 Sources 16.1.3 Console 16.1.4 Application 16 ...

  6. python 抓包解析数据_Python抓包并解析json爬虫的完整实例代码

    Python抓包并解析json爬虫 在使用Python爬虫的时候,通过抓包url,打开url可能会遇见以下类似网址,打开后会出现类似这样的界面,无法继续进行爬虫: 例如: 需要爬取网页中第二页的数据时 ...

  7. Python抓包并解析json爬虫

    Python抓包并解析json爬虫 在使用Python爬虫的时候,通过抓包url,打开url可能会遇见以下类似网址,打开后会出现类似这样的界面,无法继续进行爬虫: 例如: 需要爬取网页中第二页的数据时 ...

  8. 开发过程中快速抓包并解析

    开发过程中快速抓包并解析 这几天小编在工作中遇到了一个灵异事件,客户端使用的是安卓原生系统,服务端使用的是java.需求就是客户端在照相的时候可以实时上传照片.后台接收并保存,并且可以在平台上显示.看 ...

  9. python实战:利用chrome抓包插件HTTP间谍分析有道翻译反爬机制

    本次实战目标站点:http://fanyi.youdao.com/?keyfrom=fanyi-new.logo ,主要利用HTTP间谍抓包插件分析有道翻译反爬机制,该抓包能帮我们过滤掉一些不需要的常 ...

最新文章

  1. 斯坦福NLP团队发布最新自然语言处理Python库
  2. iOS开发~sizeClass和autolayout
  3. 一个成功的Git分支模型
  4. NOIP2011 聪明的质监员
  5. /proc/sys/net/ipv4详解(2)
  6. SAP UI5 初学者教程之九 - 创建第一个 Component 的试读版
  7. 关于lwip中pbuf_alloc()内存申请函数
  8. 【渝粤教育】国家开放大学2018年秋季 0017-22T大学英语 参考试题
  9. mysql改单行数据编码_mysql数据库字符编码修改
  10. 如何修改游戏服务器端的数据,如何修改网络游戏服务器数据
  11. linux java new date_Linux java Tomcat 项目中 new Date 获取时间 8小时 时差
  12. Lua学习笔记3. 函数可变参数和运算符、转义字符串、数组
  13. 【C# RDLC】 RDLC报表的部署问题
  14. EF架构~为ObjectContext类型加个Find方法
  15. css 注释写法注意事项
  16. 使用DPM2007来保护企业数据
  17. exfat最佳单元大小_回音壁构造和单元相关的个人看法
  18. 性能测试中问题反思和心得
  19. Android 系统FaceDetector人脸识别检测,圆形相机预览框,截取图片中的人脸图片(宽高自定义),圆形图片显示。
  20. ubuntu20.04下源码安装hyperscan库安装记录

热门文章

  1. EMC电磁兼容性问题总结
  2. TVS二极管选型与参数,一看便知
  3. 使用at命令创建定时任务
  4. 在AWS上部署一个网站
  5. Python爬虫—Scrapy框架—Win10下载安装
  6. 华三交换机配置access命令_H3C交换机配置基本命令大全(最新版)
  7. 自己觉得喜欢的2个项目,慢慢进步吧,呵呵
  8. C2228 “.xxx”的左边必须有类/结构/联合 c++
  9. 解决:Word需要查找两个固定字符间的字符 Word将查找到的字符全部选中
  10. 好玩有趣的App,居家无聊必备!