Есть такая задача.
Подключиться по telnet к железке, прочесть поток, закрывающих символов в потоке нет, он просто идёт и всё. Закрыть соединение по достижении например минуты или 10 строк. забросить всё это в файл.
И так.
В документации есть пример.
import getpass import telnetlib HOST = "localhost" user = input("Enter your remote account: ") password = getpass.getpass() tn = telnetlib.Telnet(HOST) tn.read_until(b"login: ") tn.write(user.encode('ascii') + b"\n") if password: tn.read_until(b"Password: ") tn.write(password.encode('ascii') + b"\n") tn.write(b"ls\n") tn.write(b"exit\n") print(tn.read_all().decode('ascii'))
И всё вроде хорошо работает. но есть несколько проблем.
1. В моём случае Telnet server никаких комманд не примет. он только отдаёт инфу (это АТС которая по телнету выдаёт лог звонков)
2. при попытке записать в файл“f.write(tn.read_all())”, мне питон говорит, что не может он положить байтовые данные в строку и всё тут. а при попытке сделать decode он говорить что метод ascii или utf8 не очень-то хорошо декодится из байта.
Может кто сможет подсказать как прочитьтать из телнета данные пока они идут, и как только они закончились, ну например в течении 10 секунд ничего не поступило, то оборвать коннект и записать всё это в файл ????
Буду очень благодарен!