26 lines
899 B
Python
26 lines
899 B
Python
from libmproxy.protocol.http import HTTPResponse
|
|
from netlib.odict import ODictCaseless
|
|
|
|
"""
|
|
This example shows two ways to redirect flows to other destinations.
|
|
"""
|
|
|
|
|
|
def request(context, flow):
|
|
# pretty_host(hostheader=True) takes the Host: header of the request into account,
|
|
# which is useful in transparent mode where we usually only have the IP
|
|
# otherwise.
|
|
|
|
# Method 1: Answer with a locally generated response
|
|
if flow.request.pretty_host(hostheader=True).endswith("example.com"):
|
|
resp = HTTPResponse(
|
|
[1, 1], 200, "OK",
|
|
ODictCaseless([["Content-Type", "text/html"]]),
|
|
"helloworld")
|
|
flow.reply(resp)
|
|
|
|
# Method 2: Redirect the request to a different server
|
|
if flow.request.pretty_host(hostheader=True).endswith("example.org"):
|
|
flow.request.host = "mitmproxy.org"
|
|
flow.request.update_host_header()
|