Python telnet连接关闭

时间:2019-02-18 14:30:34

标签: python connection timeout telnet telnetlib

我正在尝试通过telnet向服务器发送一些命令。这已经被手工完成了很多次,但是我被要求使用python来实现自动化。

我的代码如下所示:

import telnetlib

HOST = "xxx.xxx.xxx.xxx"
PORT = xx

print("connecting...")
tn = telnetlib.Telnet(HOST, PORT)
tn.read_until(b"250")
print("connection established!\nsending ehlo...")
tn.write(b"EHLO test.com")
tn.read_until(b"250")
print("response received")
...

如果我手动输入命令,它将起作用。但是脚本会在几分钟后中止并显示以下输出:

connecting...
connection established!
sending ehlo...
Traceback (most recent call last):
  File "telnet_test.py", line 11, in <module>
    tn.read_until(b"250")
  File "/usr/lib/python3.6/telnetlib.py", line 327, in read_until
    return self.read_very_lazy()
  File "/usr/lib/python3.6/telnetlib.py", line 403, in read_very_lazy
    raise EOFError('telnet connection closed')
EOFError: telnet connection closed

根据输出,我的telnet连接已关闭,但是我看不到为什么!? 可能很重要:启动后,输出将显示connecting...几分钟,然后输出包括异常在内的其余输出。 read_until()函数阻塞的时间是否超过了必要的时间,所以我的连接超时了吗?而我该如何解决呢?

1 个答案:

答案 0 :(得分:0)

给molbdnilo用户的积分

我需要在每个命令上添加换行符。

所以tn.write(b"EHLO test.com")变成tn.write(b"EHLO test.com\n")