2011-09-08 5 views
6

Questo è quello che voglio fare:Http attraverso telnet con pitone e contorto

browser web -> Connessione al server remoto tramite telnet (server1) -> per calamari-proxy (che richiede l'autenticazione) attraverso telnet sulla porta 80 (server2)

ho scritto un piccolo script python che usa ritorto (qui:

#! /usr/bin/python 
from twisted.internet import reactor, protocol 
from twisted.web import http 
from telnetlib import Telnet 
import getpass 
from sys import stdout 

class datareceiver(protocol.Protocol): 
    def dataReceived(self,data): 
     self.telnet_con.write(data) 
     stdout.write(self.telnet_con.read_all()) 

    def connectionMade(data): 
     stdout.write("\nA connection was made to this server\n") 

def main(): 
    server1 = "10.1.1.1" 
    #user = raw_input("Enter your remote account: ") 
    password = getpass.getpass() 
    tn = Telnet(server1) 

    if password: 
     tn.read_until("Password: ") 
     tn.write(password + "\n") 

    #This is server2 
    tn.write("telnet 10.1.1.10 80 \n") 


    #serverfac = protocol.Factory() 
    serverfac = http.HTTPFactory() 
    datareceiver.telnet_con = tn 
    serverfac.protocol = datareceiver 
    reactor.listenTCP(9229,serverfac) 

    reactor.run() 
    tn.write("exit\n") 

    print tn.read_all() 

if __name__ == "__main__": 
    main() 

Ma poi ho capito che sto facendo nel modo sbagliato, il mio guscio è sempre tutte le risposte dal calamaro al posto del browser t definire un modo corretto per farlo? Dovrei usare qualcos'altro invece di contorto?

+0

Non è proprio necessario usare python, qualsiasi altra cosa farebbe anche – vivek

+1

La domanda non è molto facile da capire. Potrebbe aiutarti se cerchi di chiarire che cosa stai cercando di realizzare. –

+0

Devo accedere a un server-squid-proxy (quali server sulla porta 80) attraverso un altro server (in effetti è un interruttore). Posso telnet nello switch e da lì usare telnet per connettermi al server squid-proxy. In breve voglio scavare la mia connessione http attraverso questo switch – vivek

risposta