[问题] Python与netsnmp取得网络设备的资料

楼主: stanley2k (使单力)   2018-01-25 18:35:12
各位大大好,目前遇一个难题卡住了,请大大们帮忙看看是否有解?
目前我用netsnmp来抓interface相关的资料,比如ifIndex、ifDescr、ifAlias,其oid如下:
.1.3.6.1.2.1.2.2.1.1、.1.3.6.1.2.1.2.2.1.2等...
其中ifindex会return给我在一个网络设备上的所有interface index,比如500,501,502....5xx。
session = netsnmp.Session(DestHost='192.168.1.1', Version=2, Community='public')
oids = netsnmp.VarList(netsnmp.Varbind(ifIndex_oid,), netsnmp.Varbind(ifDescr,))
data_result = session.walk(oids)
Return的资料正常的,也依序排好了,但目前又有一个新想法,
想把在每一个interface上的IP位址也一并取回,这样就能知道如果有问题时port号与IP的资料
于是看了一下IPv4的oid,发现设备return给我的格式如何:
ipNetToMediaNetAddress.523.8.9.10.11 = 8.9.10.11
ipNetToMediaNetAddress.535.10.1.12.1 = 10.1.12.1
ipNetToMediaNetAddress.535.10.1.12.2 = 10.1.12.2
ipNetToMediaNetAddress.537.10.1.13.1 = 10.1.13.1
ipNetToMediaNetAddress.537.10.1.13.3 = 10.1.13.3
ipNetToMediaNetAddress.539.10.1.12.1 = 10.1.12.1
ipNetToMediaNetAddress.539.10.1.12.2 = 10.1.12.2
ipNetToMediaNetAddress.540.10.1.23.2 = 10.1.23.2
ipNetToMediaNetAddress.540.10.1.23.3 = 10.1.23.3
ipNetToMediaNetAddress.541.10.1.13.1 = 10.1.13.1
ipNetToMediaNetAddress.541.10.1.13.3 = 10.1.13.3
ipNetToMediaNetAddress.542.10.1.23.2 = 10.1.23.2
ipNetToMediaNetAddress.542.10.1.23.3 = 10.1.23.3
在此请教各位大大:
1,interface的index,如上表的523,535等,它有一个index对应二个ip地址的问题,无法区分ip与interface index是否成对
2,值已是ip地址,我想不出来可以一次性把ip资料透过snmp拉回来并对应到每一个interface,
这个部份是否有建议的做法?
3,若大大有更好的解决方案也请指点一下...
4,需求就是透过snmp取得interface index(523、535...etc),interface名称(gigabitethernet0/0)
以及IP地址10.1.12.1与遮罩255.255.255.0
先谢谢观看。
作者: galeondx   2018-03-06 04:36:00

Links booklink

Contact Us: admin [ a t ] ucptt.com