Wohnsitzer mit Oxylabs und Mitmproxy
Posted: 05 Feb 2025, 00:55
Ich möchte mit Mitmproxy verwenden, um die Anfrage für eine bestimmte Website über einen Proxy umzuleiten. Dieses Skript setzt MITMProxy und das attendianl auf den Netzwerkfluss beim Start (Maschine ist so konfiguriert, dass sie den Proxy verwenden). . < /p>
Jede Hilfe, die dies zum Laufen bringt, wäre geschätzt. Danke! < /P>
Jede Hilfe, die dies zum Laufen bringt, wäre geschätzt. Danke! < /P>
Code: Select all
import asyncio
import base64
from environs import Env
from mitmproxy import options
from mitmproxy.http import HTTPFlow
from mitmproxy.net import server_spec
from mitmproxy.tools.console.master import ConsoleMaster
from proxy_server.constants import PROXY_SERVER_HOST, PROXY_SERVER_PORT
from proxy_server.logger import logger
env = Env()
env.read_env()
class OxylabsProxyAddon:
def __init__(self, protocol: str = "https"):
self.username = env("OXYLAB_USERNAME")
self.password = env("OXYLAB_PASSWORD")
self.host = "pr.oxylabs.io"
self.port = 7777
self.protocol = protocol
self.auth = f"customer-{self.username}:{self.password}"
self.credentials = base64.b64encode(self.auth.encode()).decode("utf8")
self.spec = server_spec.parse(
f"{self.protocol}://{self.host}:{self.port}", self.protocol
)
async def http_connect(self, flow: HTTPFlow):
if "whatismyip" not in flow.request.url.lower():
return
flow.request.headers["Proxy-Authorization"] = f"Basic {self.credentials}"
flow.metadata["upstream_proxy"] = self.spec
logger.info(f"Upstream proxy set for {flow.request.url}")
async def run_proxy():
opts = options.Options(
listen_host=PROXY_SERVER_HOST, listen_port=PROXY_SERVER_PORT, mode=["regular"]
)
master = ConsoleMaster(opts)
master.addons.add(OxylabsProxyAddon())
await master.run()
if __name__ == "__main__":
asyncio.run(run_proxy())