使用Python进行snmp操作

摘自https://www.cnblogs.com/lisenlin/p/10491681.html

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
 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()
复制代码

 

 

 

posted @ 2019-05-08 12:10  cloudolt  阅读(14590)  评论(0编辑  收藏  举报