gpt4 book ai didi

mitmproxy - 有没有办法在后台以编程方式启动 mitmproxy v.7.0.2?

转载 作者:行者123 更新时间:2023-12-04 17:16:19 24 4
gpt4 key购买 nike

有没有办法在后台以编程方式启动 mitmproxy v.7.0.2?
ProxyConfig 和 ProxyServer 已从 7.0.0 版开始删除,下面的代码不起作用。

from mitmproxy.options import Options
from mitmproxy.proxy.config import ProxyConfig
from mitmproxy.proxy.server import ProxyServer
from mitmproxy.tools.dump import DumpMaster

import threading
import asyncio
import time

class Addon(object):
def __init__(self):
self.num = 1

def request(self, flow):
flow.request.headers["count"] = str(self.num)

def response(self, flow):
self.num = self.num + 1
flow.response.headers["count"] = str(self.num)
print(self.num)


# see source mitmproxy/master.py for details
def loop_in_thread(loop, m):
asyncio.set_event_loop(loop) # This is the key.
m.run_loop(loop.run_forever)


if __name__ == "__main__":
options = Options(listen_host='0.0.0.0', listen_port=8080, http2=True)
m = DumpMaster(options, with_termlog=False, with_dumper=False)
config = ProxyConfig(options)
m.server = ProxyServer(config)
m.addons.add(Addon())

# run mitmproxy in backgroud, especially integrated with other server
loop = asyncio.get_event_loop()
t = threading.Thread( target=loop_in_thread, args=(loop,m) )
t.start()

# Other servers, such as a web server, might be started then.
time.sleep(20)
print('going to shutdown mitmproxy')
m.shutdown()
from BigSully's gist

最佳答案

你可以把你的Addon类成your_script.py然后运行 ​​mitmdump -s your_script.py . mitmdump 没有控制台界面,可以在后台运行。
我们(mitmproxy 开发人员)正式不再支持从 Python 手动实例化,因为这给我们带来了大量的支持负担。如果你有一些 Python 经验,你可能会找到解决办法。
如果我的插件有额外的依赖怎么办?
方法一: pip install mitmproxy仍然得到完美支持,并为您提供与独立二进制文件相同的功能。额外提示:您可以运行 venv/bin/mitmproxyvenv/Scripts/mitmproxy.exe在您的 virtualenv 中调用 mitmproxy 而无需激活您的 virtualenv。
方法二:您可以使用 pipx 安装 mitmproxy然后运行 ​​pipx inject mitmproxy <your dependency name> .见 https://docs.mitmproxy.org/stable/overview-installation/#installation-from-the-python-package-index-pypi详情。
如何调试 mitmproxy 本身?
如果您从命令行调试(无论是打印语句还是 pdb),最简单的方法是运行 mitmdump而不是 mitmproxy ,它提供了相同的功能,但没有控制台界面。或者,您可以使用 PyCharm 的远程调试功能,该功能在控制台界面处于事件状态 ( https://github.com/mitmproxy/mitmproxy/blob/main/examples/contrib/remote-debug.py ) 时也有效。

关于mitmproxy - 有没有办法在后台以编程方式启动 mitmproxy v.7.0.2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68654077/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com