Сетевые устройства Python. Общий запрос: - PullRequest
0 голосов
/ 22 августа 2011

Это РАБОТАЕТ: Я использовал для написания драйверов устройств для Cisco вендора. Когда я вхожу в это устройство, используя шпаклевку через IP-адрес устройства Telnet, оно входит в устройство и использует некоторые командыв моем скрипте для получения информации .. как команда show version в моем скрипте n get Я прочитал всю информацию в CSV-файл.

Решение для следующей задачи Теперь у нас появился новый поставщик по имени NORTEL .. Когда я использую там IP-адреса в замазке, он попадает на устройство, где он завершает работу с меню или с клавиатуры.

  1. Он просит нажать Ctrl-y для продолжения и список вариантов, таких как«информация об оборудовании», используя клавиши со стрелками, мне нужно выбрать n, чтобы получить информацию.

КАК ПИСАТЬ СКРИПТ для входа в устройство nortel, которое является полностью клавиатурным приводом .. как ctrl-y ctrl x,используя клавиши со стрелками и т. д.

1 Ответ

3 голосов
/ 22 августа 2011

Используйте pexpect .Это модуль Python, предназначенный для взаимодействия с локальными или удаленными процессами.Вот пример с его веб-сайта, показывающий, как вы можете использовать его для подключения к управляемому клавиатурой FTP-подпроцессу.

   import pexpect
   child = pexpect.spawn ('ftp ftp.openbsd.org')
   child.expect ('Name .*: ')
   child.sendline ('anonymous')
   child.expect ('Password:')
   child.sendline ('noah@example.com')
   child.expect ('ftp> ')
   child.sendline ('ls /pub/OpenBSD/')
   child.expect ('ftp> ')
   print child.before   # Print the result of the ls command.
   child.interact()     # Give control of the child to the user.

Все, что вам нужно, это поиск специальных управляющих кодов для таких клавиш, как control.1006 *

...