利用python去获取网络设备的接口信息

#!/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地址为命令保存在本地:

利用python去获取网络设备的接口信息_第1张图片

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

你可能感兴趣的:(python,接口信息,网络设备)