2011-09-08 90 views
6

這就是我想做的事:的Http通過與蟒蛇telnet和扭曲

網絡瀏覽器 - >通過telnet連接到遠程服務器(服務器) - >魷魚代理(需要身份驗證)通過在端口80(服務器2)遠程登錄

我寫了使用雙絞線(這裏小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() 

但後來我意識到我做了錯誤的方式,我的殼是讓所有的從魷魚而不是瀏覽器回覆 有人可以提出一個正確的方法來做到這一點? 我應該使用別的東西而不是扭曲嗎?

+0

它不是真的有必要使用python,其他任何東西也會這樣做 – vivek

+1

這個問題不是很容易理解。如果你試圖澄清你想要完成什麼,這可能會有所幫助。 –

+0

我必須通過另一臺服務器(實際上是一臺交換機)訪問squid-proxy-server(端口80上的服務器)。我可以遠程登錄到交換機,然後從那裏使用telnet連接到squid-proxy服務器。總之,我想通過該交換機隧道我的http連接 – vivek

回答