zoukankan      html  css  js  c++  java
  • 远程获取--snmp模块(python)/snmp-cmds,easysnmp

    一、简介

    snmp-cmds模块通过SNMP与目标设备进行通信,此模块适用于windows,此模块是基于系统已安装了net-snmp环境
    easysnmp模块通过SNMP与谬表设备进行通信,此模块用于linux,此模块基于系统已安装了net-snmp环境

    二、snmp-cmds模块安装

      2.1 在Windows平台

    复制代码
    #1.系统环境安装net-snmp软件
     a.下载链接: https://pan.baidu.com/s/1sq4mjIMfFgG2YxTMLxVF0A 提取码: a7j5
    windows-adm64下载链接:https://zh.osdn.net/projects/sfnet_net-snmp/downloads/net-snmp%20binaries/5.5-binaries/net-snmp-5.5.0-2.x64.exe/ b.安装完成,打开cmd命令框,输入snmpwalk,无报错,有回显,即安装正常 #2.使用pip工具安装snmp-cmds模块 pip3 install snmp-cmds
    复制代码

      2.2 在Centos 7平台

    复制代码
    #1.系统环境安装net-snmp软件
     a.yum install python-devel
     b.安装setuptools
        wget https://files.pythonhosted.org/packages/25/5d/cc55d39ac39383dd6e04ae80501b9af3cc455be64740ad68a4e12ec81b00/setuptools-0.6c11-py2.7.egg
     c.安装net-snmp-5.7.3软件
        wget https://sourceforge.net/projects/net-snmp/files/net-snmp/5.7.3/net-snmp-5.7.3.tar.gz
     d.提升setuptools为可执行文件
         chmod +x setuptools-0.6c11-py2.7.egg
     e. ./setuptools-0.6c11-py2.7.egg
     f.  tar -zxvf net-snmp-5.7.3.tar.gz
     g.  cd net-snmp-5.7.3
     h.  ./configure --with-python-modules     #选择版本时,输入2,其余直接回车
     i. make (时间较长)
     j. make install
     k. echo "/usr/local/lib" >> /etc/ld.so.conf
     l. ldconfig
     m. 验证,是否有snmpwalk命令
     
     
    #2.使用pip工具安装snmp-cmds模块
       pip3 install easysnmp
    
    ps:easysnmp官方文档地址:https://easysnmp.readthedocs.io/en/latest/
    复制代码

    三、简单实例

      3.1 获取目标设备的接口名字

    复制代码
    from snmp_cmds import snmpwalk
    #返回结果是列表
    res = snmpwalk(ipaddress='192.168.59.251',oid='IF-MIB:ifDescr',community='qiji123')
    
    for line in res:
        #第一个元素为oid,第二个元素为接口名字
        print(line[0],'     ',line[1])
    复制代码

      3.2 使用pysnmp模块案例

    复制代码
    from easysnmp import snmp_walk
    
    device_ip = 'IP地址'
    community = '团体字'
    # oid = 'IF-MIB::ifDescr'
    oid = 'sysDescr'
    
    def test():
        res = snmp_walk(oid, hostname=device_ip, community=community, version=2)
    
        for each in res:
            print(each.value)
         
    if __name__ == '__main__':
        test()
    复制代码

  • 相关阅读:
    根据字符串拆分字符串
    .NET WinForm读取扫描枪从COM口传过来的数据,显示在TextBox中,并做其他操作。
    《将博客搬至CSDN》
    mysql学习(二)DML
    mysql学习(一)DDL
    BigDecimal
    排序
    2017
    oracle的mapper小结
    数据结构查找
  • 原文地址:https://www.cnblogs.com/zhukaijian/p/13202985.html
Copyright © 2011-2022 走看看