Соединение Telnet Python закрывается - PullRequest
0 голосов
/ 18 февраля 2019

Я пытаюсь отправить некоторые команды через 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 Ответ

0 голосов
/ 18 февраля 2019

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

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

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

...