使用Python telnet lib w / o logout命令

时间:2012-04-05 21:24:49

标签: python telnetlib

我正在尝试使用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()

2 个答案:

答案 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