添加并开启 snmp 代理服务;(2分) 2.编制控制台程序,接受用户输入的 oid 字符串,返
时间: 2023-06-08 08:01:58 浏览: 114
添加并开启 SNMP 代理服务是一种网络管理工具,用于检测并获取网络设备的状态信息,可以方便的监控网络设备的运行情况,以及修改设备的一些参数。在 CentOS 系统上,安装 SNMP 代理服务需执行如下命令:yum install net-snmp net-snmp-utils,然后设置 snmpd 的配置文件 /etc/snmp/snmpd.conf,将相关设备中需要进行 SNMP 监控的 MIBS 开放出来即可。
接着,编制控制台程序,可以使用 Python 脚本来完成对 oid 的接收和返回操作。用户在命令行中输入指定的 oid 字符串,程序按照指定的格式解析出 oid 信息,获取对应的 OID 值,再将其以字符形式输出。
Python 提供了 SNMP 库,即 PySNMP,可以用于实现从网络设备获取信息,以及设置网络设备的参数。在程序中也要引入 PySNMP 库,具体实现代码可参考如下:
```
from pysnmp.hlapi import *
def get_oid_info(oid_string):
errorIndication, errorStatus, errorIndex, varBinds = next(
getCmd(SnmpEngine(),
CommunityData('public', mpModel=0),
UdpTransportTarget(('localhost', 161)),
ContextData(),
ObjectType(ObjectIdentity(oid_string)))
) # 这里需将"localhost"改为实际的IP地址
if errorIndication:
print(errorIndication)
elif errorStatus:
print('%s at %s' % (errorStatus.prettyPrint(),
errorIndex and varBinds[int(errorIndex) - 1][0] or '?'))
else:
for varBind in varBinds:
print(' = '.join([x.prettyPrint() for x in varBind]))
```
以上代码中的 get_oid_info 函数,通过 getCmd 方法获取 oid 对应的值,并将其以指定格式返回给用户。在命令行中输入 oid 字符串,并调用 get_oid_info 函数即可得到对应的 OID 值。
阅读全文