1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- # -*- coding: utf-8 -*-
- # @Author: wangkun
- # @Time: 2023/9/20
- import mitmproxy.http
- from mitmproxy import options
- from mitmproxy.addons import dump
- from mitmproxy.tools.dump import DumpMaster
- # from mitmproxy.addons import DumpAddon
- from common.common import Common # 导入封装好的 log 记录方法
- class MyAddon:
- @staticmethod
- def request(flow: mitmproxy.http.HTTPFlow):
- # 获取请求数据
- request_data = flow.request.get_text()
- # 调用 log 记录方法,将请求数据传递给它
- Common.logger('mitm', 'dev').info(request_data)
- @staticmethod
- def response(flow: mitmproxy.http.HTTPFlow):
- # 获取响应数据
- response_data = flow.response.get_text()
- # 调用 log 记录方法,将响应数据传递给它
- Common.logger('mitm', 'dev').info(response_data)
- def start_mitmproxy():
- # 创建 mitmproxy 的选项
- mitmproxy_options = options.Options(listen_host='0.0.0.0', listen_port=8888)
- # 创建代理配置
- # proxy_config = ProxyConfig(options=mitmproxy_options)
- # 创建 DumpAddon 以将请求和响应保存到日志文件
- dump_addon = dump.Dump()
- # 创建 MyAddon 实例
- my_addon = MyAddon()
- # 将 MyAddon 添加到 mitmproxy 的插件中
- dump_addon.addons.append(my_addon)
- # 创建 DumpMaster,使用代理配置和 DumpAddon
- dump_master = DumpMaster(options=mitmproxy_options, with_termlog=False, with_dumper=dump_addon)
- # 启动 mitmproxy
- dump_master.run()
- start_mitmproxy()
|