使用 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")
我对 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")