2011-09-08 29 views
6

Đây là những gì tôi muốn làm:Http qua telnet với trăn và xoắn

trình duyệt web -> kết nối với máy chủ từ xa thông qua telnet (server1) -> để mực-proxy (mà yêu cầu xác thực) thông qua telnet trên cổng 80 (server2)

tôi đã viết một kịch bản python nhỏ có sử dụng Twisted (ở đây:

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

Nhưng sau đó tôi nhận ra tôi đang làm nó một cách sai lầm, vỏ của tôi là nhận được tất cả các trả lời từ mực thay vì trình duyệt. Ai đó có thể jus t phác thảo một cách chính xác để làm điều này? Tôi có nên sử dụng thứ gì khác thay vì bị xoắn không?

+0

Nó không thực sự cần thiết để sử dụng python, bất cứ điều gì khác cũng sẽ làm – vivek

+1

Câu hỏi không phải là rất dễ hiểu. Nó có thể giúp đỡ nếu bạn cố gắng làm rõ những gì bạn đang cố gắng để đạt được. –

+0

Tôi phải truy cập một máy chủ proxy mực (mà máy chủ trên cổng 80) thông qua một máy chủ khác (đó là một chuyển đổi thực sự). Tôi có thể telnet vào switch và sau đó từ đó sử dụng telnet để kết nối với máy chủ proxy mực. Tóm lại, tôi muốn đường hầm kết nối http của tôi thông qua công tắc đó – vivek

Trả lời