Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Python编写Telnet_Python_Telnet_Python 3.4 - Fatal编程技术网

用Python编写Telnet

用Python编写Telnet,python,telnet,python-3.4,Python,Telnet,Python 3.4,我对python还是有点陌生,通常会摆弄telnet,但这里有一个问题。出于某种原因,我写的这段代码并没有停下来让我通过telnet终端实际写任何东西,它只是运行到完成而没有停止。我不知道我做错了什么,有人能帮忙吗 import telnetlib import time HOST = input("IP Address: ") command = b" " tn = telnetlib.Telnet(HOST, port = 23, timeout = 20) time.sleep(10)

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

我不熟悉telnetlib,所以这可能是错误的,但程序是否需要在IP之外提示输入?我不确定你所说的“它只是运行到完成而不停止”是什么意思。你能澄清一下吗!在用户获得IP输入后,您再也不会要求用户输入任何内容。是否要求您输入IP?输出的准确度是多少?您需要使用read_until或相关函数,否则它将尝试从远端读取所有内容,直到连接关闭。请参见telnetlib文档中的示例: