【goreplay】python简单使用goreplay中间件功能

news/2024/11/18 21:48:29/文章来源:https://www.cnblogs.com/fireblackman/p/18292246

一、场景

    流量录制,需要对播放的流量进程定制化处理,那么可以使用中间件来实现

 

 

二、官网

https://pypi.org/project/gor/

 

 

三、编写中间件代码

# coding: utf-8
import sys
from gor.middleware import AsyncioGordef on_request(proxy, msg, **kwargs):proxy.on('response', on_response, idx=msg.id, req=msg)def on_response(proxy, msg, **kwargs):proxy.on('replay', on_replay, idx=kwargs['req'].id, req=kwargs['req'], resp=msg)def on_replay(proxy, msg, **kwargs):replay_status = proxy.http_status(msg.http)resp_status = proxy.http_status(kwargs['resp'].http)if replay_status != resp_status:sys.stderr.write('replay status [%s] diffs from response status [%s]\n' % (replay_status, resp_status))else:sys.stderr.write('replay status is same as response status\n')sys.stderr.flush()if __name__ == '__main__':proxy = AsyncioGor()proxy.on('request', on_request)proxy.run()

有on_request, on_response, on_replay三个关键方法

 

四、使用

sudo ./gor --input-raw :8000 --middleware "python3 /path/to/middleware.py" --output-http-track-response --input-raw-track-response --output-http="http://192.168.3.123:8001"

可能会报错

 需要使用sudo安装gor库

$ sudo pip3 install gor
Collecting gorDownloading gor-0.2.3-py3-none-any.whl (6.9 kB)
Installing collected packages: gor
Successfully installed gor-0.2.3

 

五、我们查看效果

 

参考链接:

https://pypi.org/project/gor/

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/741211.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一对多和多对一关联

比如:作者和文章之间, 部门和员工之间都是一对多的关联关系。反过来就是:多对一的关联关系 1、定义外键约束 定义关系的第一步是创建外键。外键是(foreign key)用来在 A 表存储 B 表的主键值以便和 B 表建立联系的关系字段。因为外键只能存储单一数据(标量),所以外键总…

树莓派4B-用串口读取JY901S陀螺仪数据

陀螺仪是一种用来感测与维持方向的装置,基于角动量的理论设计出来的。陀螺仪主要是由一个位于轴心可以旋转的轮子构成,陀螺仪一旦开始旋转,由于轮子的「角动量」,陀螺仪有抗拒方向改变的趋向。陀螺仪多用于导航、定位等系统JY901S是9轴姿态角度传感器,支持串口和 IIC 两种…

Java 中的泛型 集合(List,Set) Map

泛型 集合(List,Set) Map 泛型泛型的本质是参数化类型,即允许在编译时对集合进行类型检查,从而避免安全问题,提高代码的复用性泛型的具体定义与作用定义:泛型是一种在编译阶段进行类型检查的机制,它允许在类,方法,接口后通过<> 来声明类型参数.这些参数在编译时会被具体的…

创建vue2项目执行npm install -g @vue/cli报错 no such file or directory, mkdir \\?

第一步:查看默认全局安装路径。 指令:npm config get prefix 我这里路径 npm config get prefix E:\NVM\nvm\node_global 第二步:不存在这个路劲进行更换 npm config set prefix "D:\Develop\nodejs" nodejs里面有 node_cache node_global node_modules 这些文件 …

NAND Flash基础介绍 一

Chip CI 颗粒厂商提供的是整个一块晶圆,晶圆上已经把芯片划分好了,如下图模组厂商或者颗粒厂商会把晶圆拿去分割,拆分出一个个芯片,每个拆分下来的芯片型号、工艺、空间大小等由颗粒厂家提前定制好了,具体说明可参考https://www.cnblogs.com/studywithallofyou/p/18291633…

各类插件

生成图片html2canvas : 基于页面中存在且可用的DOM结构、样式,构建“截图”,绘制到canvas画布中dom-to-image:将DOM 节点序列化为XML,包装到SVG中,再转为图片。

性能测试:性能测试流程与方法

简介 性能测试流程是指在进行性能测试时所遵循的一系列步骤和阶段,以确保对系统的全面测试和评估。性能测试流程的具体步骤可能会因组织、项目和测试需求而有所不同。 性能****测试流程分析现状:首先需要对应用程序或系统进行详细的分析,了解其当前的性能状况、发现性能瓶颈…

ESP32-S3开发板技术研究第一篇

1. 最小系统板原理图框架,第1路USB转串口,第2路USB直连模组 2. RGB灯是自带主控的,WS2812是一种智能控制LED灯源,集成了控制电路和RGB芯片在一个5050封装组件中。 3. 软件开发,编译环境 3.1 先安装 vs code 3.2 在vscode 的扩展里面搜索 ESP-IDF插件,安装

Flask API 如何接入 i18n 实现国际化多语言

如何在现有的 Flask API 项目中,引入 i18n 实现国际化多语言,同时与前端 Vue3 页面联动。​ 1. 介绍 上一篇文章分享了 Vue3 如何如何接入 i18n 实现国际化多语言,这里继续和大家分享 Flask 后端如何接入 i18n 实现国际化多语言。 用户请求 API 的多语言化其实有两种解决方案…

1 python介绍、基本语法、流程控制

一、 Python介绍python的创始人为吉多范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。 最新的TIOBE排行榜,Python赶超PHP占据第五, Python崇尚优美、清晰、简单,是一个优…

记录 中**信 ruoyi项目 部署全流程

零 本地环境改为线上环境 包括 1 后端的数据库连接地址 2 后端的文件存储本地地址 3 后端的文件存储ip地址 4 前端baseUrl 一 后端项目打包双击package 二 mstsc 进入服务器 三 备份四 后端jar包替换五 前端文件替换六 检查数据库需不需要备份 七 启动 java -jar ruoyi-admin.j…

hackmyvm-airbind

环境 靶机ip:未知 攻击机kali:ip1:192.168.96.59 ip2:192.168.56.103 主机探测 arp-scan -l发现了56.104这个机子应该就是我们的靶机,接下来先对其进行端口扫描 端口扫描发现开放了80端口,但是22端口状态显示为filtered,不知道开放还是关闭 访问80端口,发现是wallos的管理…