网络管理协议(SNMP)是应用层协议。 一个SNMP管理的网络由3部分构成:
- 网络管理系统
- 被管理的设备
- 代理者
调用snmp查看管理的设备的信息
snmpwalk -v 2c -c CDRCB_RO 80.1.25.74 1.3.6.1.2.1.2.2.1.5
其中CDRCB_RO为团体字;oid1.3.6.1.2.1.2.2.1.5为设备型号oid。 结果如下:
snmpwalk -v 2c -c CDRCB_RO 80.2.25.140 1.3.6.1.2.1.1.1
SNMPv2-MIB::sysDescr.0 = STRING: Hillstone Security Appliance SG-6000-E3960
获取本机名字
snmpwalk -v 2c -c CDRCB_RO 80.2.25.140 sysName
运行结果为:
snmpwalk -v 2c -c CDRCB_RO 80.2.25.140 sysName
SNMPv2-MIB::sysName.0 = STRING: QY4_WY_A16_SG6000_FW1
获取端口速率:
snmpwalk -v 2c -c CDRCB_RO 80.1.25.74 1.3.6.1.2.1.2.2.1.5
获得如下数据:
python调用snmp协议获取端口速率并对结果进行处理。代码如下
import os
import time
community = "CDRCB_RO"
admin_ip = "80.1.25.74"
rate ="1.3.6.1.2.1.2.2.1.5"
snmp_order = "snmpwalk -v 2c -c {} {} {}".format(community, admin_ip, rate)
result_device = os.popen(snmp_order).read().split("\n")
for i in range(len(result_device) - 1):
if "Such Instance" in result_device[0]:
pass
else:
res = int(result_device[i].split(": ")[-1])/1000000
rates = str(res) + "M"
print rates
|