2012-01-24 2 views
3

PySNMP 라이브러리를 사용하여 Python의 SNMP 포트에서 데이터를 읽으려고합니다. 이 라이브러리를 통해서만 데이터를 가져 오는 데 관심이 있습니다. 이것은 NetSNMP에서 PySNMP로 이동하기 때문입니다. Python의 SNMP 포트에서 데이터 가져 오기

실제로 나에게 코드의

import netsnmp as snmp 

infoSet = snmp.Varbind('1.3.6.1.2.1.123.1.7.1.1.0') 
infoGet = snmp.snmpget(infoSet, Version = 1, DestHost = 'localhost', Community = "public") 

print infoGet 

이 3 선이 해당 포트에서 나에게 실제 독서를 반환 포트에서 데이터를주고 내가 얻기 위해 노력하고 있음을 나는은 netsnmp 위해했던 작업 코드 같은 PySNMP의 데이터와이 코드입니다 지금까지

from pysnmp.entity.rfc3413.oneliner import cmdgen 

errorIndication, errorStatus, errorIndex, varBinds = cmdgen.CommandGenerator().getCmd(

cmdgen.CommunityData('my-agent', 'public', 0), 
cmdgen.UdpTransportTarget(('localhost', 161)), 
(1,3,6,1,2,1,1,1,0) 
) 

print varBinds[0][0] 

이 SNMP 주소를 인쇄하고 내가 위에서 언급 한 포트에 대한 실제 독서를 얻을 수있는 곳이 단계를지나려고하고 내가 아니다 확실한 h 아야. 나는 문서를 읽는 것이 어렵다는 것을 알고있다.

도움을 주시면 감사하겠습니다.

감사합니다.

답변

3

varBinds는 튜플의 목록입니다. 각 튜플에는 OID 값 쌍이 있습니다.

>>> print varBinds 
[(ObjectName(1.3.6.1.2.1.1.1.0), OctetString('Example Command Responder'))] 
>>> print varBinds[0] 
(ObjectName(1.3.6.1.2.1.1.1.0), OctetString('Example Command Responder')) 
>>> print varBinds[0][0] 
1.3.6.1.2.1.1.1.0 
>>> print varBinds[0][1] 
Example Command Responder 

그래서 당신이 필요로하는 모든는

>>> print varBinds[0][1] 

도움이 될, 값 인 경우.