2011-09-08 2 views
6

とこれは私が何をしたいです:のHttp Telnet経由のpythonとねじれた

Webブラウザ - >(サーバー1)Telnet経由でリモートサーバーに接続 - >イカプロキシに(認証が必要)経由ポート80(サーバー2)

上のtelnet私はツイストを使用する小型のPythonスクリプト(ここに書かれています:

#! /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() 

をしかし、その後、私はそれを間違った方法をやって実現し、私のシェルがすべてなっていますブラウザの代わりにイカから返信します 誰かjusこれを行う正しい方法を概説してください。 ねじれの代わりに何か他のものを使うべきですか?

+0

Pythonを使うのに本当に必要なことはありませんが、それ以外は何もしません。 – vivek

+1

質問はあまり理解しにくいです。あなたが達成しようとしていることを明確にしようとすると助けになるかもしれません。 –

+0

私はsquid-proxy-server(ポート80のサーバ)に別のサーバ(実際はスイッチ)を介してアクセスする必要があります。私はスイッチにtelnetすることができ、そこからtelnetを使ってsquid-proxyサーバに接続します。要するに、そのスイッチを介してhttp接続をトンネルしたい – vivek

答えて