使用 Python 通过 Telnet 写入

Writing through Telnet with Python

我对 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")",根据我查过的所有内容,这应该允许用户输入他们想输入的任何内容,但程序不会停止以允许用户根本无法输入任何内容。

在我看来 command 基本上是一个空字符串,而且似乎在任何时候都不会改变(除了 '\n')。每次你做 tn.write(command + b"\n"),你只是在发送 b"\n" 。您没有提示用户键入任何内容。尝试类似的东西:

command = input("Enter command: ")
tn.write(b"{}\n".format(command))

代替只写:

tn.write(command + b"\n")