2011-09-08 15 views
6

यह मुझे क्या करना चाहते हैं: -> (server1) टेलनेट के माध्यम से दूरस्थ सर्वर से कनेक्ट -Http और मुड़

वेब ब्राउज़र> करने के लिए व्यंग्य-प्रॉक्सी (जो प्रमाणीकरण की आवश्यकता है) के माध्यम से पोर्ट 80 (server2) पर टेलनेट

मैं मुड़ (यहाँ का उपयोग करता है एक छोटे से अजगर स्क्रिप्ट में लिखा है:

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

पायथन का उपयोग करने के लिए यह वास्तव में आवश्यक नहीं है, और कुछ भी – vivek

+1

प्रश्न को समझना बहुत आसान नहीं है। यदि आप इसे पूरा करने की कोशिश कर रहे हैं तो यह स्पष्ट करने का प्रयास करते हैं तो यह आपकी सहायता कर सकता है। –

+0

मुझे किसी अन्य सर्वर के माध्यम से स्क्विड-प्रॉक्सी-सर्वर (पोर्ट 80 पर कौन से सर्वर) तक पहुंचना है (यह वास्तव में एक स्विच है)। मैं स्विच में टेलनेट कर सकता हूं और फिर वहां से स्क्विड-प्रॉक्सी सर्वर से कनेक्ट करने के लिए टेलनेट का उपयोग कर सकता हूं। संक्षेप में मैं उस स्विच के माध्यम से अपने http कनेक्शन सुरंग करना चाहता हूँ – vivek

उत्तर

1

मुझे लगता है कि आप twisted.web.server.Site और twisted.web.resource.Resource पर देखना चाहते हैं। इसके अलावा, चूंकि आप ट्विस्टेड का उपयोग कर रहे हैं, तो आप शायद टेलनेट कनेक्शन के लिए twisted.protocols.telnet.Telnet का उपयोग करना चाहेंगे, अन्यथा आपका एप्लिकेशन असीमित नहीं होगा।

This blog post और this answer here भी उपयोगी हो सकता है।

आशा है कि इससे मदद मिलती है!