当前位置:  编程技术>python

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

    来源: 互联网  发布时间:2014-10-04

    本文导语:  最近因工作需要,上面要求,每天需上报运维的几百数通设备端口使用情况【】,虽然有现成网管监控工具监控设备状态,但做报表,有点不方便,特写了个小脚本。注:测试运行于ubuntn,需安装snmpwalk工具,目标数通设备,...

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

注:测试运行于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("%st%st%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    

    
 
 

您可能感兴趣的文章:

  • Python获取网页编码的方法及示例代码
  • python读取csv文件示例(python操作csv)
  • python下xml解析库lxml最新版下载安装以及代码示例
  • python基础教程之python消息摘要算法使用示例
  • 数据结构:图(有向图,无向图),在Python中的表示和实现代码示例
  • python实现绘制树枝简单示例
  • 使用python删除nginx缓存文件示例(python文件操作)
  • python学习手册中的python多态示例代码
  • python调用windows api锁定计算机示例
  • python代码制作configure文件示例
  • python使用循环实现批量创建文件夹示例
  • python采用requests库模拟登录和抓取数据的简单示例
  • Python数组条件过滤filter函数使用示例
  • python获得图片base64编码示例
  • Python的print用法示例
  • python文件读写并使用mysql批量插入示例分享(python操作mysql)
  • Python pass 语句使用示例
  • python getopt 参数处理小示例
  • python的urllib模块显示下载进度示例
  • python list转dict示例分享
  • python求素数示例分享
  • python判断端口是否打开的实现代码
  • 使用python实现扫描端口示例
  • python基础教程之udp端口扫描
  • Python实现根据指定端口探测服务器/模块部署的方法
  • python多线程扫描端口示例
  • Python实现端口复用实例代码
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 写了个监控nginx进程的Python脚本
  • linux系统使用python监控apache服务器进程脚本分享
  • python动态监控日志内容的示例
  • 可用于监控 mysql Master Slave 状态的python代码
  • python使用pyhook监控键盘并实现切换歌曲的功能
  • python监控网卡流量并使用graphite绘图的示例
  • python中使用pyhook实现键盘监控的例子
  • python实现监控linux性能及进程消耗性能的方法
  • 使用Python的Supervisor进行进程监控以及自动启动
  • python操作摄像头截图实现远程监控的例子
  • python实现监控windows服务并自动启动服务示例
  • Python GUI编程:tkinter实现一个窗口并居中代码
  • 让python同时兼容python2和python3的8个技巧分享
  • Python不使用print而直接输出二进制字符串
  • 使用setup.py安装python包和卸载python包的方法
  • Python中实现json字符串和dict类型的互转
  • 不小心把linux自带的python卸载了,导致安装一个依赖原python的软件不能安装,请问该怎么办?
  • python异常信息堆栈输出到日志文件
  • Python开发者社区整站源码 Pythoner
  • python下用os.execl执行centos下的系统时间同步命令ntpdate
  • 新手该如何学python怎么学好python?
  • Python namedtuple对象json序列化/反序列化及对象恢复
  • 请教:system("C:\python2.4\python.exe C:\aa.py");该语句有何错误?为什么运行界面一闪就消失了并且没有运行完,请给出正确语句!
  • Python异常模块traceback用法举例
  • python版本的问题
  • python之平台独立的调试工具winpdb介绍
  • Mac OS X10.9安装的Python2.7升级Python3.3步骤详解
  • 基于Python的Html/xml解析库Beautiful Soup 4.2.1发布
  • python安装的问题
  • 测试Python内部类型及type和isinstance用法区别
  • 如何运行Python程序的方法


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3