[英]Telnet from inside a telnet session (Python)
我试图从另一个远程设备远程登录到远程设备,使用telnetlib进行嵌套的telnet。 虽然我可以轻松地与第一台设备通信,但是我无法从第二台设备获取输出。 以下是我的代码,我可以正确执行此操作吗?
import telnetlib
HOST = "firstDevice"
user = "lab"
password = "lab"
tn = telnetlib.Telnet(HOST)
tn.read_until("Username: ")
tn.write(user + "\n")
if password:
tn.read_until("Password: ")
tn.write(password + "\n")
#Nested telnet
tn2 = telnetlib.Telnet("secondDevice")
tn2.read_until("#")
tn2.write("sh clock\n")
#Close tn2
tn2.write("exit\n")
print tn2.read_all()
#Close tn
tn.write("exit\n")
print tn.read_all()
编辑1
import telnetlib
HOST = "firstDevice"
user = "lab"
password = "lab"
tn = telnetlib.Telnet(HOST)
tn.read_until("Username: ")
tn.write(user + "\n")
if password:
tn.read_until("Password: ")
tn.write(password + "\n")
#Nested telnet
tn.write("telnet secondDevice\n")
tn.write("sh clock\n")
#Close nested session
tn.write("exit\n")
#Close tn
tn.write("exit\n")
print tn.read_all()
您没有在代码中进行嵌套连接。 您只是从本地主机连接到两台不同的计算机,但是显然您实际上无法连接到第二台计算机。 要对第二个主机执行嵌套的Telnet,必须告诉第一个主机telnet到第二个主机:将tn2 = telnetlib.Telnet("secondDevice")
替换为
tn.write("telnet secondDevice\n")
由于您具有嵌套连接,因此所有本地主机应该看到的是tn
。 您可以完全摆脱tn2
对象。 与第二设备的所有交互将通过向第一设备发送字符串来完成,该字符串位于连接到第二设备的会话中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.