# -*- 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()