Python - SNMP - Usando OIDs
Python - SNMP - Usando OIDs | ||
Canal Qb |
Para incluir essas informações ao seu script, você precisa identificar as OIDs correspondentes para cada uma das informações que deseja obter. Você pode fazer isso consultando a documentação do fabricante da impressora ou usando uma ferramenta de descoberta de SNMP, como o SNMP Walk.
Depois de identificar as OIDs, você pode adicionar um novo objeto ObjectType para cada uma delas e extrair os valores correspondentes a partir da resposta SNMP. Aqui está um exemplo de como você pode fazer isso:
ip_address = '10.0.26.205'community_string = 'public'snmp_engine = SnmpEngine()# OID para o modelo da impressoraoid_model = ObjectIdentity('SNMPv2-MIB', 'sysDescr', 0)# OID para o número de série da impressoraoid_serial = ObjectIdentity('SNMPv2-MIB', 'sysSerialNum', 0)# OID para o endereço IP da impressoraoid_ip = ObjectIdentity('IP-MIB', 'ipAdEntAddr', 1, 4, 1, 10, 0, 26, 205)# OID para a máscara de sub-rede da impressoraoid_mask = ObjectIdentity('IP-MIB', 'ipAdEntNetMask', 1, 4, 1, 10, 0, 26, 205)# OID para a versão de firmware da impressoraoid_firmware = ObjectIdentity('SNMPv2-MIB', 'sysDescr', 0)# OID para a bandeja de papel padrão da impressoraoid_tray = ObjectIdentity('SNMPv2-SMI', 'enterprises', '674', '11', '1', '1', '6', '1', '0')# OID para o contador de páginas da impressoraoid_pagecount = ObjectIdentity('SNMPv2-SMI', 'enterprises', '674', '11', '1', '1', '11', '1', '0')# Consulta SNMP para obter as informações da impressoraerrorIndication, errorStatus, errorIndex, varBinds = next(getCmd(snmp_engine,CommunityData(community_string),UdpTransportTarget((ip_address, 161)),ContextData(),ObjectType(oid_model),ObjectType(oid_serial),ObjectType(oid_ip),ObjectType(oid_mask),ObjectType(oid_firmware),ObjectType(oid_tray),ObjectType(oid_pagecount)))# Verifica se houve erro na consultaif errorIndication:print('Erro na consulta SNMP: %s' % errorIndication)elif errorStatus:print('Erro na consulta SNMP: %s at %s' % (errorStatus.prettyPrint(),errorIndex and varBinds[int(errorIndex) - 1][0] or '?'))else:# Extrai os valores das OIDsmodel = varBinds[0][1].prettyPrint()serial = varBinds[1][1].prettyPrint()ip = varBinds[2][1].prettyPrint()mask = varBinds[3][1].prettyPrint()firmware = varBinds[4][1].prettyPrint()tray = varBinds[5][1].prettyPrint()pagecount = varBinds[6][1].prettyPrint()# Imprime as informações da impressoraprint('Modelo da impressora: %s' % model)print('Número de série: %s' % serial)print('Endereço IP: %s' % ip)print('Máscara de sub-rede: %s' % mask)print('Versão de firmware: %s' % firmware)print('Bandeja de papel padrão: %s' % tray)print('Contador de páginas: %s' % pagecount)
Observe que as OIDs que usei são apenas exemplos
Nenhum comentário
Comente só assim vamos crescer juntos!
Observação: somente um membro deste blog pode postar um comentário.