mitmproxy/examples/addons/io-write-flow-file.py

30 lines
750 B
Python
Raw Normal View History

"""
Generate a mitmproxy dump file.
2018-05-13 22:31:20 +00:00
This script demonstrates how to generate a mitmproxy dump file,
as it would also be generated by passing `-w` to mitmproxy.
In contrast to `-w`, this gives you full control over which
flows should be saved and also allows you to rotate files or log
to multiple files in parallel.
"""
2015-04-12 01:47:58 +00:00
import random
import sys
2017-04-28 21:56:14 +00:00
from mitmproxy import io, http
import typing # noqa
2015-04-12 01:50:14 +00:00
class Writer:
2017-04-28 21:56:14 +00:00
def __init__(self, path: str) -> None:
self.f: typing.IO[bytes] = open(path, "wb")
2017-05-26 14:14:20 +00:00
self.w = io.FlowWriter(self.f)
2017-04-28 21:56:14 +00:00
def response(self, flow: http.HTTPFlow) -> None:
if random.choice([True, False]):
self.w.add(flow)
2015-04-12 01:50:14 +00:00
2017-05-26 14:14:20 +00:00
def done(self):
self.f.close()
2016-07-08 01:37:33 +00:00
addons = [Writer(sys.argv[1])]