Базовый скрипт Telnetlib зависает - PullRequest
0 голосов
/ 05 октября 2018
import getpass
import telnetlib

HOST = "192.168.21.5"
user = input("Enter your remote account: ")
password = getpass.getpass()

tn = telnetlib.Telnet(HOST)

tn.read_until(b"Username: ")
tn.write(user.encode('ascii') + b"\n")
if password:
    tn.read_until(b"Password: ")
    tn.write(password.encode('ascii') + b"\n")

print(tn.read_all().decode('ascii'))

Я новичок в python и считаю, что лучший способ научиться - просто погрузиться. Я нашел приведенный выше код telnetlib в стандартной библиотеке Python.Я использую Python 3.6 на сервере Ubuntu.Я могу telnet с сервера Ubuntu на маршрутизатор, но когда я запускаю это через Python, он просто зависает.Я добавил значение тайм-аута, чтобы увидеть, действительно ли оно зависло, и это действительно так.В конце концов я собираюсь запускать команды на маршрутизаторе и отображать вывод в python.Если вам ответили в другой теме, пожалуйста, поделитесь ссылкой.

Вот что я получу после запуска:

tom@ubuntu-server:~/Python_Scripts$ sudo python3.6 telnet3.py
Enter your remote account: tom
Password:
Traceback (most recent call last):
  File "telnet3.py", line 16, in <module>
    print(tn.read_all().decode('ascii'))
  File "/usr/lib/python3.6/telnetlib.py", line 333, in read_all
    self.fill_rawq()
  File "/usr/lib/python3.6/telnetlib.py", line 524, in fill_rawq
    buf = self.sock.recv(50)
socket.timeout: timed out

Спасибо за помощь!

...