安装

官网:http://www.net-snmp.org/download.html

环境:CentOS 6.6 + python 2.7.10

1、下载安装包 net-snmp-5.6.2.1.tar.gz,并编译安装

tar -xvf net-snmp-5.6.2.1.tar.gz
cd net-snmp-5.6.2.1
/configure --with-python-modules --prefix=/usr/local/net-snmp --enable-developer --libdir=/usr/lib64 --enable-shared
make
make install

2、安装netsnmp python库

cd net-snmp-5.6.2.1/python
python setup.py install

3、测试

import netsnmp

snmpwalk

snmpwalk是SNMP的一个工具,它使用SNMP的GETNEXT请求查询指定OID(SNMP协议中的对象标识)入口的所有OID树信息,并显示给用户。通过snmpwalk也可以查看支持SNMP协议(可网管)的设备的一些其他信息,比如cisco交换机或路由器IP地址、内存使用率等,也可用来协助开发SNMP功能。

snmpwalk没有单独的安装包,它被包含在net-snmp软件包中的,所以我们只需要安装net-snmp软件包就可以得到snmpwalk。

snmpwalk使用方法:

snmpwalk -v 1或2c(代表SNMP版本) -c SNMP密码 IP地址 OID(对象标示符)

–v:指定snmp的版本, 1或者2,该参数必须有。
–c:指定连接设备SNMP读密码,该参数必须有。
IP:指定要walk的设备的IP地址,该参数必须有。
OID:代表要获取设备的指标oid,该参数不是必须的。

重要参数介绍:

  • –h:显示帮助。
  • –v:指定snmp的版本, 1或者2c或者3。
  • –c:指定连接设备SNMP密码。
  • –V:显示当前snmpwalk命令行版本。
  • –r:指定重试次数,默认为0次。
  • –t:指定每次请求的等待超时时间,单为秒,默认为3秒。
  • –l:指定安全级别:noAuthNoPriv|authNoPriv|authPriv。
  • –a:验证协议:MD5|SHA。只有-l指定为authNoPriv或authPriv时才需要。
  • –A:验证字符串。只有-l指定为authNoPriv或authPriv时才需要。
  • –x:加密协议:DES。只有-l指定为authPriv时才需要。
  • –X:加密字符串。只有-l指定为authPriv时才需要。

参考文档:http://www.ilanni.com/?p=8408

MIB Browser

iReasoning MIB浏览器是一个强大和易于使用的工具由iReasoning SNMP API提供支持。 MIB浏览器是工程师管理启用SNMP的网络设备和应用程序不可或缺的工具。 它允许用户加载标准的,专有的MIB,甚至一些错误的MIB。 它还允许它们发出SNMP请求以检索代理的数据,或对代理进行更改。 内置陷阱接收器可以根据其规则引擎接收和处理SNMP陷阱。

下载地址:http://www.ireasoning.com/download.shtml

安装后界面

可以通过官网下载MIB库文件,导入ireasoning\mibbrowser\mibs目录下,通过MIB Browser可以查看设备的私有OID

如何获取Cisco设备OID值

思科的交换机snmp oid信息查询  http://tools.cisco.com/Support/SNMP/do/BrowseOID.do

1、通过交换机执行命令获取IOS名称,如下图标红的内容

2、官网页面查询

3、点击search后弹出新页面,列出这个IOS所有可用的MIB库,如下图

4、选择自己需要的MIB库,如CISCO环境监视器MIB文件,名称是CISCO-ENVMON-MIB,点击V2

我需要查看设备的温度值,找到具体的OBJECT-TYPE,如下图的 ciscoEnvMonTemperatureStatusTable

5、根据ciscoEnvMonTemperatureStatusTable 去官网查询它的OID

6、根据查询的OID,通过snmpwalk命令进行获取

7、cpu信息获取

下表显示他们替换的新的MIB和他们的对象在旧有MIB旁边和对象:

    # sysDescr  CSICO-3560 系统信息
# ifNumber CSICO-3560 接口总数
# ifTable CSICO-3560 接口详细信息
# .1.3.6.1.4.1.9.9.13.1.3.1.3 CSICO-3560 温度
# .1.3.6.1.4.1.9.9.13.1.4.1.3 CSICO-3560 风扇状态
# .1.3.6.1.4.1.9.9.13.1.5.1.3 CSICO-3560 电源状态
# 1.3.6.1.4.1.9.9.48.1.1.1.1 CSICO-3560内存池名称,有多个,如Processor、I/O、Driver
# 1.3.6.1.4.1.9.9.48.1.1.1.5 CSICO-3560内存池使用
# 1.3.6.1.4.1.9.9.48.1.1.1.6 CSICO-3560内存池空闲,内存池总大小=使用+空闲

华为MIB库

如何下载华为设备MIB  http://support.huawei.com/huaweiconnect/enterprise/thread-228323.html

python代码实现获取snmp信息

# -*- coding: utf-8 -*-

import netsnmp

class SnmpClass(object):
"""
SNMP
"""
def __init__(self, oid="sysDescr", version=1, destHost="localhost", community="public"):
self.oid = oid
self.version = version
self.destHost = destHost
self.community = community @property
def query(self):
"""
snmpwalk
"""
try:
result = netsnmp.snmpwalk(self.oid,
Version=self.version,
DestHost=self.destHost,
Community=self.community)
except Exception, err:
print err
result = None
return result def main():
test_obj = SnmpClass(oid="ifIndex", destHost="192.168.137.11")
print test_obj.query if __name__ == '__main__':
main()

python net-snmp使用的更多相关文章

  1. python工具---snmp流量监控,自定义粒度,业务突发可视化

    现在主流监控软件和云平台提供的流量监控,监控粒度最小只能设置为1分钟,无法准确定位故障,特别是瞬时突发较大的业务 对比python的snmp库还是更喜欢用subprocess调用snmpwalk命令, ...

  2. Python 封装SNMP调用接口

    PySNMP 是一个纯粹用Python实现的SNMP,用PySNMP的最抽象的API为One-line Applications,其中有两类API:同步的和非同步的,都在模块pysnmp.entity ...

  3. python通过snmp协议运用多线程获取多台主机网卡信息,写入数据库

    #-*- coding:utf-8 -*- import netsnmp class SnmpClass(object): """ SNMP ""&q ...

  4. Python 调用snmp自定义OID实现监控

    http://kkkkkk.blog.51cto.com/468162/1172726 http://blog.csdn.net/mirahs/article/details/49619729

  5. python并发获取snmp信息及性能测试

    python & snmp 用python获取snmp信息有多个现成的库可以使用,其中比较常用的是netsnmp和pysnmp两个库.网上有较多的关于两个库的例子. 本文重点在于如何并发的获取 ...

  6. SNMP学习笔记之Python的netsnmp和pysnmp的性能对比

    0x00 概览 用python获取snmp信息有多个现成的库可以使用,其中比较常用的是netsnmp和pysnmp两个库.网上有较多的关于两个库的例子. 本文重点在于如何并发的获取snmp的数据,即同 ...

  7. python net-snmp 的使用

    这一年一直在做一个综合管控平台的项目,用python写的,项目春节前可能就要进行实际部署了和测试,趁着这个空闲期,回顾一下项目中用到的一些技术,第一个就是SNMP协议. 项目结构主要是实现对ipran ...

  8. snmp爆破(python脚本)

    snmp用来获取信息,然后利用获取的信息来进一步的渗透. 命令行有 snmpwalk -v 2c -c public ip system -c是密码,默认的密码是public 利用工具可以找windo ...

  9. SNMP学习笔记之SNMP TRAP简介、流程以及使用Python实现接受Trap信息

    0x00 SNMP TRAP简介 SNMP(Simple Network Management Protocol) trap是一种很有用,但是也容易让人难以理解的协议. 虽然名字叫做简单网络管理协议, ...

  10. SNMP学习笔记之SNMP的安装及Python的调用

    0x00 概述 本文是介绍SNMP在Windows和Linux(Ubuntu)下的安装,以及通过Python调用其接口的文章. 0x01 开发环境 Python 3.5.1 Windows 10 64 ...

随机推荐

  1. iOS自学-UILabel常见属性

    #import "ViewController.h" #import <CoreText/CoreText.h> @interface ViewController ( ...

  2. git 提交本地文件,删除文件夹,修改文件等

    1. 下载git工具包 链接: https://git-scm.com/download/win 2. 右键打开git bash 登陆到自己的github账户 $ git config --globa ...

  3. 《TCP/IP 详解 卷1:协议》第 4 章:地址解析协议

    链路层是经过单一链路通信的协议层. IP 网络层协议的设计目标是为跨越不同物理类型的.多节点网络的 packet ,提供主机寻址.路由操作. 在其中要注意的一点是:网络层使用的地址和底层网络硬件使用的 ...

  4. 用原生JS实现多张图片上传及预览功能(兼容IE8)

    最近需要做一个图片上传预览的功能(兼容IE8-11.chrome.firefox等浏览器),网上现有的文件上传组件(如webuploader)总是会遇到一些兼容性问题.于是我参考了一些博文(链接找不到 ...

  5. Team饭来了团队作业3需求改进与系统设计

    团队名称:饭来了 人员组成: 队长:侯晓东          学号:2016012087 队员:崔啸寒          学号:2016012006 队员:方柱权          学号:201601 ...

  6. AngularJs 学习 (一)

    最近学习了一下关于AngularJs的知识,发现和Vue还是有非常相似的东西.所以对于学过Vue的自己来说,还是比较好理解的 特点:双向数据绑定,单页面应用 控制器: AngularJs控制器可以控制 ...

  7. scp命令与Screen服务的区别

    scp:远程传输命令.(通过网络传送给其他主机,又恰好两台主机都是linux系统,便可以使用scp传输文件) 参数 作痛 -v 先是详细的连接进度 -P 指定远程主机的sshd端口号 -r 传送文件夹 ...

  8. 前端切图相关ps技术

    标签(空格分隔): 前端切图 复制图层到一个新的ps文件 对于单个图层 1.选中图层 2.CTRL+A全选 3.CTRL+C 4.CTRL+N新建文件,文件大小默认就可以(背景透明也在这个面板设置), ...

  9. sql server数据库中raiserror函数的用法

    server数据库中raiserror的作用就和asp.NET中的throw new Exception一样,用于抛出一个异常或错误.这个错误可以被程序捕捉到. raiserror的常用格式如下:ra ...

  10. [Oracle] 11.2.0.1 的客户端无法连接12.2.0.1 的DB端 28040

    最近有一个应用服务器安装上了 11.2.0.1 的oracle DB端 又想当 客户端用来 注册 oracle12.2.0.1的DB端发现不行 但是很奇怪 报的错误竟然是 ora 01017 密码错误 ...