gpt4 book ai didi

python - 使用 python 和 twisted 通过 telnet 的 Http

转载 作者:太空狗 更新时间:2023-10-30 00:18:10 26 4
gpt4 key购买 nike

这就是我想要做的:

web-browser --> 通过 telnet(server1) 连接到远程服务器 --> 通过端口 80(server2) 上的 telnet 连接到 squid-proxy(需要身份验证)

我写了一个使用 Twisted 的小 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()

但后来我意识到我做错了,我的 shell 从 squid 而不是浏览器获取所有回复。有人可以概述一个正确的方法吗?我应该使用其他东西而不是扭曲吗?

最佳答案

我想你想看看twisted.web.server.Sitetwisted.web.resource.Resource .此外,由于您使用的是 Twisted,您可能需要使用 twisted.protocols.telnet.Telnet对于 telnet 连接,否则您的应用程序将不会是异步的。

This blog postthis answer here也可能有用。

希望这对您有所帮助!

关于python - 使用 python 和 twisted 通过 telnet 的 Http,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7354864/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com