利用python去获取网络设备的接口信息
利用python去获取网络设备的接口信息
丿小丿贰丶 发表于2年前
利用python去获取网络设备的接口信息
  • 发表于 2年前
  • 阅读 46
  • 收藏 0
  • 点赞 0
  • 评论 1

腾讯云 十分钟定制你的第一个小程序>>>   

摘要: 本次脚本用到了paramiko模块和pexpect模块,主要是应该项目里面有两种交换机设备,第一种直接登陆就可以通过“show mac address-table”获取接口信息,而第二种设备则需要切换权限级别,所以有一个交互的过程。因此使用了python提供的pexpect模块进行交互。
#!/usr/bin/env python
#coding:utf-8
#
import paramiko
import pexpect

#定义设备登陆参数
user = 'user'
passwd = 'password'
port = 22


SH = paramiko.SSHClient()
SH.load_system_host_keys()
def ssh():
	ip_file = open('ip_n5k','r+')    
	ip_list = ip_file.readlines()    
	com = 'show mac address-table'
	for host in ip_list:
		ip = host.strip('\n')
                data = open('/root/work/result/%s' % ip,'w+')
		SH.set_missing_host_key_policy(paramiko.AutoAddPolicy())  #第一次链接时会提示(yes/no)提示信息,此处则相当于输出yes
		SH.connect(ip,port,user,passwd)     #链接设备
		stdin,stdout,stderr = SH.exec_command('%s' % com)     #执行show命令
		data.write(stdout.read())    #输出结果保存在本地文件
		data.close()

		SH.close()
	ip_file.close()
def pxpssh():
	iplist = open('ip_ucs','r+')
	for host in iplist.readlines():
		ip = host.strip('\n')
		data = open('/root/work/result/%s' % ip,'w+')
		child = pexpect.spawn('ssh %s@%s' % (user,ip))    #登陆设备
		child.expect('Password:')            #匹配到提示符Password
		child.sendline(passwd)               #发送密码
		child.expect('#')
		child.sendline('terminal length 0')    
		child.expect('#')
		child.sendline('connect nxos')
		child.expect('#')
		child.sendline('show mac address-table')
		child.expect('#')
		data.write(child.before)     #child.before是打印上一个命令的输出结果


ssh()
pxpssh()

结果以ip地址为命令保存在本地:

第一次写分享文章,请写得不好勿见笑。

共有 人打赏支持
粉丝 0
博文 2
码字总数 509
评论 (1)
×
丿小丿贰丶
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: