Python网络设备.. 一般查询:

0 投票
1 回答
675 浏览
提问于 2025-04-17 00:07

这个方法有效: 我以前为Cisco公司编写设备驱动程序。 我通过Putty登录到他们的设备,使用Telnet连接设备的IP地址,然后进入设备,接着在我的脚本中使用一些命令来获取信息,比如在我的脚本中使用“show version”命令,然后把所有信息读入CSV文件中。

下面问题的解决方案 现在我们有一个新的供应商,叫NORTEL。当我在Putty中使用他们的IP地址时,它会进入一个完全由菜单或键盘驱动的设备。

  1. 它会要求我按Ctrl-y继续,并列出一些选项,比如“硬件信息”,我需要使用箭头键选择,然后按回车键来获取信息。

我该如何编写脚本来进入这个完全由键盘驱动的Nortel设备呢?比如使用Ctrl-y、Ctrl-x,或者使用箭头键等等。

1 个回答

3

可以使用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.

你只需要查找一些特殊的控制代码,比如控制键的代码。

撰写回答