使用PySNMP读取被管设备的MIB参数,要求至少读取被管设备3个不同参数。
时间: 2024-11-15 16:22:11 浏览: 15
使用Python的PySNMP库来读取网络管理系统(Network Management System, SNMP)下的MIB参数是一种常见的网络管理操作。MIB(Management Information Base)是一个标准文件,定义了网络设备的各种指标和配置信息。以下是步骤来获取被管设备的三个不同参数:
1. 安装PySNMP库:首先,你需要安装`pysnmp`库,可以使用pip命令进行安装:
```
pip install pysnmp
```
2. 配置SNMP参数:获取设备的MIB数据需要知道目标设备的SNMP社区字符串、IP地址以及想要查询的OID (Object Identifier)。OID是MIB树中的路径标识符。
```python
from pysnmp.hlapi import *
# 设备的SNMP参数
community_data = CommunityData('your_community_string')
auth_data = UsmUserData('your_username', 'your_password', 'sha')
transport_target = UdpTransportTarget(('device_ip_address', snmp_port))
# 查询的三个OID示例:
oid1 = ('iso', 'enterprises', 'your_enterprise_id', 'your_first_mib_object') # 第一个MIB参数OID
oid2 = ('your_second_mib_object', ...) # 第二个MIB参数OID
oid3 = ('your_third_mib_object', ...) # 第三个MIB参数OID
```
3. 获取MIB值:
使用SNMP GET请求发送到设备并解析响应来获取特定OID对应的值。
```python
def get_mib_value(oid):
error_indication, error_status, error_index, var_binds = next(
getCmd(SnmpEngine(),
auth_data,
transport_target,
ContextData(),
ObjectType(ObjectIdentity(*oid))
)
)
if error_indication:
print(f"Error getting MIB value: {error_indication}")
elif error_status:
print(f"Error with status {error_status.prettyPrint()} at index {error_index and var_binds[int(error_index)-1][0]:x}")
else:
return var_binds[0][1] # 返回第一个变量的值(假设只有一个)
value1 = get_mib_value(oid1)
value2 = get_mib_value(oid2)
value3 = get_mib_value(oid3)
```
阅读全文