snmpv2的

from pysnmp.hlapi import *

iterator = getCmd(
    SnmpEngine(),
    CommunityData('public', mpModel=0),#V2的团体字
    UdpTransportTarget(('192.168.56.11', 161)),#目标IP和端口
    ContextData(),
    ObjectType(ObjectIdentity('1.3.6.1.2.1.1.3.0'))#查询单个OID
    # ObjectType(ObjectIdentity('SNMPv2-MIB', 'sysDescr', 0))#通过OID名称查询
)

errorIndication, errorStatus, errorIndex, varBinds = next(iterator)

if errorIndication:
    print(errorIndication)

elif errorStatus:
    print('%s at %s' % (errorStatus.prettyPrint(),
                        errorIndex and varBinds[int(errorIndex) - 1][0] or '?'))

else:
    for varBind in varBinds:
        print(' = '.join([x.prettyPrint() for x in varBind]))

SNMPv3的

SNMPv3支持认证方式和加密如下:

     #usmHMACMD5AuthProtocol - MD5 hashing

    #usmHMACSHAAuthProtocol - SHA hashing

    #usmNoAuthProtocol - no authentication

    #usmDESPrivProtocol - DES encryption

    #usm3DESEDEPrivProtocol - triple-DES encryption

    #usmAesCfb128Protocol - AES encryption, 128-bit

    #usmAesCfb192Protocol - AES encryption, 192-bit

    #usmAesCfb256Protocol - AES encryption, 256-bit

    #usmNoPrivProtocol - no encryption

from pysnmp.hlapi import *

iterator = getCmd(
    SnmpEngine(),
    UsmUserData('snmpuser', '12345678', '12345678',#第一个为snmp用户名,第二个为认证密码,第三个为加密密码
                authProtocol=usmHMACSHAAuthProtocol,#认证方式
                privProtocol=usmDESPrivProtocol),#认证密码
    UdpTransportTarget(('192.168.56.11', 161)),
    ContextData(),
    ObjectType(ObjectIdentity('1.3.6.1.2.1.1.3.0'))
    # ObjectType(ObjectIdentity('SNMPv2-MIB', 'sysDescr', 0))
)

errorIndication, errorStatus, errorIndex, varBinds = next(iterator)

if errorIndication:
    print(errorIndication)

elif errorStatus:
    print('%s at %s' % (errorStatus.prettyPrint(),
                        errorIndex and varBinds[int(errorIndex) - 1][0] or '?'))

else:
    for varBind in varBinds:
        print(' = '.join([x.prettyPrint() for x in varBind]))