我正在尝试使用python的telnetlib模块从远程设备获取信息。不幸的是,看起来远程设备没有“注销”类型的命令。所以你必须用CTRL-手动关闭连接(当手动telnet时)。我尝试使用Telnet.close()但似乎没有返回任何数据。
建议?
HOST = "172.16.7.37"
user = "Netcrypt"
password = "Netcrypt"
tn = telnetlib.Telnet(HOST)
tn.read_until("User: ")
tn.write(user + "\n")
if password:
tn.read_until("Password: ")
tn.write(password + "\n")
tn.write("session \n")
print tn.read_until("NC_HOST> ")
tn.close()
答案 0 :(得分:2)
您是否尝试将 CTRL + ] 的ASCII字符写入telnet连接?
tn.write('\x1d')
答案 1 :(得分:0)
我最终不需要任何这些。这笔交易是我必须阅读提示,发出我的命令,阅读直到下一个提示。从不需要read_all()。
这是工作代码:
import telnetlib
HOST = "172.16.7.37"
user = "Netcrypt"
password = "Netcrypt"
tn = telnetlib.Telnet(HOST)
tn.read_until("User: ")
tn.write(user + "\n")
if password:
tn.read_until("Password: ")
tn.write(password + "\n")
tn.read_until('NC_HOST>')
tn.write("session\n")
data = tn.read_until('NC_HOST>')
print data