Esto es lo que quiero hacer:HTTP a través de telnet con el pitón y retorcido
navegador web -> conectar con el servidor remoto a través de telnet (server1) -> a calamar-proxy (que requiere autenticación) a través de telnet en el puerto 80 (servidor 2)
he escrito un pequeño script en Python que utiliza Twisted (aquí:
#! /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()
Pero entonces me di cuenta de que lo estoy haciendo por el camino equivocado, mi concha está recibiendo toda la respuestas de squid en lugar del navegador. Puede alguien jus ¿Esbozar una forma correcta de hacer esto? ¿Debo usar algo más en lugar de retorcerlo?
No es realmente necesario usar Python, cualquier otra cosa también haría – vivek
La pregunta no es muy fácil de entender. Podría ayudar si tratas de aclarar lo que estás tratando de lograr. –
Tengo que acceder a un servidor proxy Squid (que servidores en el puerto 80) a través de otro servidor (en realidad es un conmutador). Puedo hacer telnet en el interruptor y luego usar telnet para conectarme al servidor squid-proxy. En resumen, quiero tunelizar mi conexión http a través de ese interruptor – vivek