当前位置:首页 > Python教程 > python技巧

python snmp switch port state

# -*- coding:utf-8 -*- import re import os import time import platform import sys import importlib,sys importlib.reload(sys) def snmpWalk(ip,oid): result = os.popen(‘snmpwalk -v 2c -c‘ + ‘ ‘ + ‘public‘ + ‘ ‘ + ip + ‘ ‘ + oid).read().split(‘n‘)[:-1] # result1 = os.popen(‘snmpwalk -v 2c -c‘ + ‘ ‘ + ‘public‘ + ‘ ‘ + ‘192.168.34.231‘ + ‘ ‘ + ‘.1.3.6.1.2.1.1.1.0‘).read().stript() # result = (‘snmpwalk -v 2c -c‘ + ‘public‘ + ‘‘ + ‘192.168.34.231‘ + ‘ ‘ + ‘.1.3.6.1.2.1.1.1.0‘) return result def getPortDevices(ip,oid): device_mib = snmpWalk(ip,oid) device_list = [] for item in device_mib: device_list.append(item.split(‘:‘)[3].strip()) return device_list def getPortStatus(ip,oid): device_mib = snmpWalk(ip,oid) device_list = [] for item in device_mib: device_list.append(re.search(‘w+‘,item.split(‘:‘)[3].strip()).group()) return device_list def main(): with open(‘ip.text‘,‘r‘,encoding=‘utf-8‘) as pf: for ip in pf: port_full_state = [] all_switch_informaiton = {} ip = ip.strip() print(ip) device_port = getPortDevices(ip,‘ifDescr‘) # print(len(device_port)) device_port_statue = getPortStatus(ip,‘ifOperStatus‘) # print(len(device_port_statue)) for item in zip(device_port,device_port_statue): port_full_state.append(item) all_switch_informaiton[‘ip‘] = ip all_switch_informaiton[‘port‘] = port_full_state with open(‘output.text‘, ‘a‘) as f: f.write(str(all_switch_informaiton)) f.write(‘n‘) f.close() pf.close() print(all_switch_informaiton) if __name__ == ‘__main__‘: main()

原文:https://blog.51cto.com/zhangfang526/2482535


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!

相关教程推荐

其他课程推荐