python实现数通设备端口监控示例

 更新时间:2014年04月02日 11:17:48   作者:  
这篇文章主要介绍了python实现数通设备端口监控示例,需要的朋友可以参考下

最近因工作需要,上面要求,每天需上报运维的几百数通设备端口使用情况【】,虽然有现成网管监控工具监控设备状态,但做报表,有点不方便,特写了个小脚本。

注:测试运行于ubuntn,需安装snmpwalk工具,

目标数通设备,需做好相关snmp配置

复制代码 代码如下:

#/usr/bin/python
#coding:utf-8

import os,sys
import re
from pprint import pprint

#甯歌鍘傚鏁伴氳澶嘙IB鍊?
MIB = {
   'public':{
        'ports':{
           'string':'.1.3.6.1.2.1.2.2.1.2',
           'status':'.1.3.6.1.2.1.2.2.1.8',   #2 down
       }
    },
   'huawei':{

   },
   'cisco':{
   }
}
#绔彛鐘舵佽浆鎹?
def portStatus(_s):
    if int(_s)==2:
        return 'down'
    elif int(_s)==1:
        return 'up'
    else:
        return 'none'

#鎵ц绯荤粺鍛戒护snmpwalk璋冪敤
def snmpwalk(host,publicKey,iso):
    return [i.strip() for i in os.popen('/usr/bin/snmpwalk -c %s  -v 2c %s %s'%(publicKey,host,iso)).readlines()]

def getPorts(_ip,_public,option):
    if option == 'ports':
        postsString = (j.split('=')[1].split(':')[1].replace('"','').strip() for j in snmpwalk(_ip,_public,MIB['public']['ports']['string']))
        postsStatus = (int(j.split('=')[1].split(':')[1].strip()) for j in snmpwalk(_ip,_public,MIB['public']['ports']['status']))
        return zip(postsString,postsStatus)
    else:
        print('on this commmnad')

publicKey = 'hi'  #sunmp public key

HOSTS={
    '10.221.98.2':{'type':'switch','origin':'quidway','public':publicKey},
    '10.221.98.3':{'type':'switch','origin':'quidway','public':publicKey},
    '10.221.97.108':{'type':'firewall','origin':'h3c','public':publicKey},
    '10.231.98.233':{'type':'switch','origin':'cisco','public':publicKey},
}
if __name__ == '__main__':
    for i in HOSTS.keys():
        for host,status in getPorts(i,HOSTS[i]['public'],'ports'):
            print("%s\t%s\t%s"%(i,host.ljust(30),portStatus(status).ljust(20)))
        print(''.ljust(50,'#'))

运行结果

复制代码 代码如下:

root@ubuntn12:/tmp# python snmpwalk.py
10.221.98.2     InLoopBack0                     up                 
10.221.98.2     NULL0                           up                 
10.221.98.2     GigabitEthernet0/0/0            down               
10.221.98.2     Aux0/0/1                        down               
10.221.98.2     Vlanif100                       up                 
10.221.98.2     Eth-Trunk1                      down               
10.221.98.2     Eth-Trunk1.32                   down               
10.221.98.2     Eth-Trunk1.50                   down               
10.221.98.2     Eth-Trunk1.60                   down               
10.221.98.2     Eth-Trunk1.70                   down               
10.221.98.2     Eth-Trunk1.80                   down               
10.221.98.2     Eth-Trunk1.100                  down               
10.221.98.2     Eth-Trunk1.110                  down    

相关文章

  • 使用Jupyter notebooks上传文件夹或大量数据到服务器

    使用Jupyter notebooks上传文件夹或大量数据到服务器

    这篇文章主要介绍了使用Jupyter notebooks上传文件夹或大量数据到服务器,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • 利用Python进行异常值分析实例代码

    利用Python进行异常值分析实例代码

    数据挖掘工作中的第一步就是异常值检测,异常值的存在会影响实验结果。下面这篇文章主要给大家介绍了关于利用Python进行异常值分析的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-12-12
  • python文件拆分与重组实例

    python文件拆分与重组实例

    今天小编就为大家分享一篇python文件拆分与重组实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • python实现微信接口(itchat)详细介绍

    python实现微信接口(itchat)详细介绍

    这篇文章主要介绍了python实现微信接口(itchat)详细介绍,小编觉得挺不错的,这里分享给大家,供需要的朋友参考。
    2017-10-10
  • Python实现搜索算法的实例代码

    Python实现搜索算法的实例代码

    这篇文章主要介绍了Python实现搜索算法,文中通过实例代码给大家分享高级搜索算法的想法,分为线性搜索和插值搜索,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-01-01
  • Keras: model实现固定部分layer,训练部分layer操作

    Keras: model实现固定部分layer,训练部分layer操作

    这篇文章主要介绍了Keras: model实现固定部分layer,训练部分layer操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • Python实现PS图像抽象画风效果的方法

    Python实现PS图像抽象画风效果的方法

    这篇文章主要介绍了Python实现PS图像抽象画风效果的方法,涉及Python基于skimage模块进行图像处理的相关操作技巧,需要的朋友可以参考下
    2018-01-01
  • python基础教程之实现石头剪刀布游戏示例

    python基础教程之实现石头剪刀布游戏示例

    使用PYTHON设计一个"石头,剪子,布"游戏,有时又叫"Rochambeau",下面是实现方法,需要的朋友可以参考下
    2014-02-02
  • 局域网内python socket实现windows与linux间的消息传送

    局域网内python socket实现windows与linux间的消息传送

    这篇文章主要介绍了局域网内python socket实现windows与linux间的消息传送的相关知识,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-04-04
  • 对python csv模块配置分隔符和引用符详解

    对python csv模块配置分隔符和引用符详解

    今天小编就为大家分享一篇对python csv模块配置分隔符和引用符详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12

最新评论