【问题标题】:I need an alternative to mitmproxy for python我需要 python 的 mitmproxy 的替代品
【发布时间】:2018-06-11 00:16:43
【问题描述】:

我有一个项目,我需要在 python 中创建一个 HTTP 数据包拦截器作为代理,但我不能使用 mitmproxy,因为它只能通过 cli 命令而不是内部库工作。我有一个应用程序,我不能告诉人们运行 mitmproxy,因为这是应用程序内部应该做的事情。我目前正在使用 fork 从 bash 启动 mitmproxy,但是为其他操作系统创建此功能给我带来了很多麻烦。

出于这个原因,有人知道某种方法可以作为不依赖于 python 外部命令的代理来拦截流量?。

【问题讨论】:

    标签: python-3.x proxy mitmproxy


    【解决方案1】:

    mitmproxy 可以加载到你的 python 代码中。

    from mitmproxy import proxy, options
    from mitmproxy.tools.dump import DumpMaster
    from mitmproxy.addons import core
    
    
    class AddHeader:
        def __init__(self):
            self.num = 0
    
        def response(self, flow):
            self.num = self.num + 1
            print(self.num)
            flow.response.headers["count"] = str(self.num)
    
    
    addons = [
        AddHeader()
    ]
    
    if __name__ == '__main__':
    
        opts = options.Options(listen_host='127.0.0.1', listen_port=8080)
        pconf = proxy.config.ProxyConfig(opts)
    
        m = DumpMaster(None)
        m.server = proxy.server.ProxyServer(pconf)
        print(m.addons)
        m.addons.add(addons)
        # m.addons.add(core.Core())
    
        try:
            m.run()
        except KeyboardInterrupt:
            m.shutdown()
    

    此代码取自GitHub issue

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-19
      • 2010-09-13
      • 1970-01-01
      相关资源
      最近更新 更多