Скрученный человек в середине заголовков прокси - PullRequest
0 голосов
/ 04 мая 2018

Попытка чтения заголовков в скрученном среднем прокси-сервере.

Здесь вы можете увидеть простой витой сервер (украденный из stackoverflow, ага ...). Это хорошо работает, но мне нужно переключать прокси на основе заголовков запросов. Не могу понять, где я могу получить заголовки здесь. Он работал с прокси-сервером с жестким кодом, но идея в том, чтобы переключать прокси на основе запросов.

Есть идеи, пожалуйста? Спасибо за ваше время. Вот код:

#!/usr/bin/env python

LISTEN_PORT = 8080
SERVER_PORT = 3128
SERVER_ADDR = "89.40.127.96"

from twisted.internet import protocol, reactor

class ServerProtocol(protocol.Protocol):
    def __init__(self):
        self.buffer = None
        self.client = None

    def connectionMade(self):
        factory = protocol.ClientFactory()
        factory.protocol = ClientProtocol
        factory.server = self

        reactor.connectTCP(SERVER_ADDR, SERVER_PORT, factory)

    # Client => Proxy
    def dataReceived(self, data):
        if self.client:
            self.client.write(data)
        else:
            self.buffer = data

    # Proxy => Client
    def write(self, data):
        self.transport.write(data)


class ClientProtocol(protocol.Protocol):
    def connectionMade(self):
        self.factory.server.client = self
        self.write(self.factory.server.buffer)
        self.factory.server.buffer = ''

    # Server => Proxy
    def dataReceived(self, data):
        self.factory.server.write(data)

    # Proxy => Server
    def write(self, data):
        if data:
            self.transport.write(data)


def main():
    factory = protocol.ServerFactory()
    factory.protocol = ServerProtocol

    reactor.listenTCP(LISTEN_PORT, factory)
    print "server"
    reactor.run()

if __name__ == '__main__':
    main()
...