溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何在Python環(huán)境中使用 pysnmp

發(fā)布時間:2020-11-07 16:10:40 來源:億速云 閱讀:672 作者:Leah 欄目:開發(fā)技術(shù)

如何在Python環(huán)境中使用 pysnmp?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

SNMP標(biāo)準(zhǔn)引入一組ASN.1語言元素,稱之為SMI(Structure of Management Information)。由SMI描述的相互關(guān)聯(lián)的被管對象(Managed Objects)組成MIB(Management Information Base)模塊。

核心MIB中經(jīng)常用到的Managed Objects成為SNMP標(biāo)準(zhǔn)的一部分。剩下的MIB一般由設(shè)備生產(chǎn)商在其設(shè)備中創(chuàng)建。(也就是說這些MIB是生產(chǎn)商和設(shè)備相關(guān)的)

PySNMP是一個純粹用Python實現(xiàn)的SNMP。

用PySNMP的最抽象的API為One-line Applications。其中有兩類API:同步的和非同步的,都在模塊pysnmp.entity.rfc3413.oneliner.cmdgen 中實現(xiàn)。

所以在使用的時候為了方便,可以

from pysnmp.entity.rfc3413.oneliner import cmdgen
然后用
cg = cmdgen.CommandGenerator()
來產(chǎn)生一個CommandGenerator對象,
以后調(diào)用cg的getCmd等方法來獲取或者設(shè)置網(wǎng)絡(luò)設(shè)備信息。

getCmd()需要三個參數(shù):

1.cmdgen.CommunityData() ##社區(qū)信息 傳入三個數(shù)據(jù),安全my-agent、社區(qū)名public、snmp協(xié)議版本,之間用逗號隔開,例如 cmdgen.CommunityData('my-agent', 'public', 1)

2.cmdgen.UdpTransportTarget() ##通道參數(shù),傳入一個元組,包含主機(jī)IP/域名和端口,例如:cmdgen.UdpTransportTarget(('192.168.70.237', 161)

3. OID ##mib值,例如 '.1.3.6.1.4.1.1800.5.13.2'

注意:三個參數(shù)之間用 ","隔開。

下面上個例子是獲得設(shè)備snmp數(shù)據(jù):

from pysnmp.entity.rfc3413.oneliner import cmdgen
 
def snmpget():
  cg = cmdgen.CommandGenerator() ##獲得CommandGenerator對象
  errorIndication, errorStatus, errorIndex, varBinds = cg.getCmd(
   #0代表v1,1代表v2c 
  cmdgen.CommunityData('my-agent', 'public', 1), ##社區(qū)信息,my-agent ,public 表示社區(qū)名,1表示snmp v2c版本,0為v1版本
  cmdgen.UdpTransportTarget(('192.168.70.237', 161)),##這是傳輸?shù)耐ǖ溃瑐鬏數(shù)絀P 192.168.70.237, 端口 161上(snmp標(biāo)準(zhǔn)默認(rèn)161 UDP端口)
  '.1.3.6.1.4.1.1800.5.13.2' ##傳送的OID,個人認(rèn)為MIB值
  )
  print str(varBinds[0][1]); ##varBinds返回是一個stulp,含有MIB值和獲得值
def runit(loop=1):
  for i in range(loop):
    snmpget()
    #print i
if __name__ == "__main__":
  runit(loop=1)

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI