Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python2.6
- import netsnmp
- class snmp:
- "Encapsulating class using NetSNMP library"
- version = 2
- community = "public"
- useNumeric = True
- destination = None
- _session = None
- def __init__(self):
- self._session = netsnmp.Session(
- Version=self.version,
- Community=self.community,
- UseNumeric=self.useNumeric
- )
- def dest(self, destination):
- "Set destination"
- self.destination = destination
- def get(self, oid):
- "Perform SNMP get request"
- var = netsnmp.Varbind(oid)
- ret = netsnmp.snmpget(var, Version=self.version, Community=self.community, UseNumeric=self.useNumeric, DestHost=self.destination)
- return ret[0]
- def walk(self, oid, format=None):
- """Perform SNMP walk request
- format - specifies returned data format
- values: list of returned VALs
- keys: list of returned IIDs
- tuples: list of tuples (IID, VAL)
- dict: dictionary {IID: VAL}
- None (default): list of tuples (TAG, IID, TYPE, VAL)
- This function don't use bulk-walk yet.
- """
- var = netsnmp.VarList(netsnmp.Varbind(oid))
- ret = netsnmp.snmpwalk(var, Version=self.version, Community=self.community, UseNumeric=self.useNumeric, DestHost=self.destination)
- if format == "values":
- return [var[i].val for i in range(len(var))]
- elif format == "keys":
- return [var[i].iid for i in range(len(var))]
- elif format == "tuples":
- return [(var[i].iid, var[i].val) for i in range(len(var))]
- elif format == "dict":
- return dict([(var[i].iid, var[i].val) for i in range(len(var))])
- else:
- return [(var[i].tag, var[i].iid, var[i].type, var[i].val) for i in range(len(var))]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement