【发布时间】:2015-10-01 20:34:11
【问题描述】:
我对 python 和一般的 telnet 还有些陌生,但我在这里遇到了一个问题。出于某种原因,我编写的这段代码并没有停止让我通过 telnet 终端实际编写任何东西,它只是不停地运行到完成。我不知道我做错了什么,有人可以帮忙吗?
import telnetlib
import time
HOST = input("IP Address: ")
command = b" "
tn = telnetlib.Telnet(HOST, port = 23, timeout = 20)
time.sleep(10)
tn.write(command + b"\n")
ret1 = tn.read_eager()
time.sleep(10)
print(ret1)
tn.write(b"001 rq version\n")
ret2 = tn.read_until(b"_DNE", timeout = 5)
time.sleep(10)
print(ret2)
tn.write(command + b"\n")
print("Success!")
tn.close()
编辑:对不起,我应该更清楚地说明。
基本上,它得到IP后,就可以连接到主机了。之后的问题是“tn.write(command + b”\n“)”行,根据我查找的所有内容,这应该允许用户输入他们想要输入的任何内容,但程序不会停止允许用户输入任何内容。
【问题讨论】:
-
我对telnetlib不熟悉,所以这可能是错误的,但是程序除了IP还需要提示输入吗?
-
我不确定您所说的“它只是运行到完成而没有停止”是什么意思。你能澄清一下吗!
-
得到用户输入的IP后,就不再要求用户输入。是不是要你输入IP?输出到底是什么?
-
您需要使用 read_until 或相关函数,否则它将尝试从远端读取所有内容,直到连接关闭。参见 telnetlib 文档中的示例:docs.python.org/3.4/library/telnetlib.html
标签: python telnet python-3.4