Похоже, что Telnetlib не передает команды .write - PullRequest
1 голос
/ 08 октября 2019

Я здесь новичок в Python, просто пытаюсь освоить новый навык, поэтому, пожалуйста, будьте осторожны:)

После выполнения следующего сценария кажется, что мой сценарий создает сеанс telnet, и я могу видеть устройства ciscoбаннер, но не передает имя пользователя / пароль при запросе.

Я попытался изменить tn.read_until () и tn.read_very_eager (), ни один из которых не запускает сценарий для записи желаемого ввода. Я также попытался принудительно ввести имя пользователя и пароль в виде байта, а также добавил + '\ n' к моим функциям записи. Я также использовал сон, чтобы потратить немного больше времени на ожидание окончания печати баннера.

tldr: при выполнении сценария я вижу приглашение имени пользователя, но не могу получить дальше.

любая помощь здесь приветствуется.

'''
   from time import sleep
   import telnetlib
   from telnetlib import Telnet
   from getpass import getpass

   Username = input('please provide your username ')
   password = getpass()

   # f is the .txt document that lists the IP's we'll be using.
   f = open('devicess.txt')

   for line in f:
       print ('Configuring Device ' + (line))
       device = (line)

   #open connection to variable    
   tn = telnetlib.Telnet(device)
   #For those devices in the above list, connect and run the below commands
   for device in f:
       tn.expect('Username: ')
       tn.write(Username)
       tn.expect('Password: ')
       tn.write(password)
       tn.write('show ver')              
       print('connection established to ' + device)
       tn.write('logout')

   output = tn.read_all()
   print(output)
   print('script complete')
''' 
...