Соединение 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")