📜  SNMP 完整表格(1)

📅  最后修改于: 2023-12-03 15:20:10.304000             🧑  作者: Mango

SNMP 完整表格

SNMP(Simple Network Management Protocol,简单网络管理协议)是一种用于网络设备的管理协议。它可以监控网络设备的状态、性能以及配置信息。SNMP由一个管理站点和多个代理站点构成,管理站点可以通过SNMP协议向代理站点发送管理请求,并获取代理站点的信息。

SNMP 主要行为

SNMP协议主要有如下行为:

  • 获取(Get):使用GET操作从设备中获取指定OID(Object Identifier)的值。
  • 设置(Set):使用SET操作向设备中指定OID写入一个新的值。
  • 询问(Request):使用GET和SET操作向设备发送一个或多个管理请求。
  • 响应(Response):代理站点向管理站点响应一个查询或设置请求。
SNMP 库

SNMP库是一组用于简化SNMP协议使用的函数。Python中有许多SNMP库可供使用!比如pysnmp和easysnmp。

以下是使用pysnmp库获取设备信息的代码片段:

# 导入必要的包
from pysnmp.hlapi import *

# 定义设备地址和OID
host = '192.168.1.1'
oid  = '1.3.6.1.2.1.1.1.0'

# 通过SNMP协议获取设备信息
for (errorIndication, errorStatus, errorIndex, varBinds) in getCmd(SnmpEngine(),
  CommunityData('public'),
  UdpTransportTarget((host, 161)),
  ContextData(),
  ObjectType(ObjectIdentity(oid))):
  
  if errorIndication:
    print(errorIndication)
    break
  elif errorStatus:
    print(f"ERROR: {errorStatus.prettyPrint()}")
    break
  else:
    for varBind in varBinds:
      print(varBind)
SNMP 表格

SNMP协议中还包括一种特殊的数据类型:表格。表格是用于表示一组相似数据的数据结构。表格中的每一行都有一个唯一的索引(也叫键),用于访问该行中的数据。表格中每一列都有一个数据类型和一个标签。

以下是使用pysnmp库获取设备表格的代码片段:

# 定义设备地址和OID
host = '192.168.1.1'
oid  = '1.3.6.1.2.1.4.22'

# 通过SNMP协议获取设备表格
for (errorIndication, errorStatus, errorIndex, varBinds) in bulkCmd(
  SnmpEngine(),
  CommunityData('public'),
  UdpTransportTarget((host, 161)),
  ContextData(),
  ObjectType(ObjectIdentity(oid)),
  lexicographicMode=False):
  
  if errorIndication:
    print(errorIndication)
    break
  elif errorStatus:
    print(f"ERROR: {errorStatus.prettyPrint()}")
    break
  else:
    for varBind in varBinds:
      print(varBind)

输出结果如下:

SNMPv2-SMI::ipAdEntAddr.192.168.1.1 = IpAddress('192.168.1.1')
SNMPv2-SMI::ipAdEntIfIndex.192.168.1.1 = INTEGER: 11
SNMPv2-SMI::ipAdEntNetMask.192.168.1.1 = IpAddress('255.255.255.0')
SNMPv2-SMI::ipAdEntBcastAddr.192.168.1.255 = IpAddress('192.168.1.255')
总结

SNMP是一种用于网络设备管理的协议,它主要有四种行为:获取、设置、询问和响应。Python中有许多SNMP库可供使用,比如pysnmp和easysnmp。SNMP协议中还包括一种特殊的数据类型:表格。表格是用于表示一组相似数据的数据结构。