[問題] 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