Соединение Telnet Python закрывается

Я пытаюсь отправить некоторые команды через 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... в течение нескольких минут, а затем печатается остальная часть вывода, включая исключение get. Это read_until() функция блокируется дольше, чем необходимо, поэтому тайм-ауты моего соединения? И как мне это решить?

1 ответ

Решение

Кредиты пользователю molbdnilo

Мне нужно было добавить символ новой строки в каждой команде.

Так tn.write(b"EHLO test.com") становится tn.write(b"EHLO test.com\n")

Другие вопросы по тегам