
Automatizando a Extração de Ramificações MIB de Impressoras Python 3.8.10 + pysnmp = Extraindo valores de MIB para TXT
Qualquer outra versão pode precisar de adaptação!
import sys import subprocess import pkg_resources # Lista dos pacotes necessários required = {'pysnmp'} # Verifica e instala os pacotes que não estão instalados installed = {pkg.key for pkg in pkg_resources.working_set} missing = required - installed if missing: print(f"Instalando pacotes faltantes: {', '.join(missing)}") subprocess.check_call([sys.executable, '-m', 'pip', 'install', *missing]) print("Pacotes instalados com sucesso. Reiniciando o script...") subprocess.check_call([sys.executable] + sys.argv) sys.exit() # Importa os módulos após garantir que estão instalados from pysnmp.hlapi import * def retorno(host, oid, output_file): with open(output_file, 'w', encoding='utf-8') as f: for (errorIndication, errorStatus, errorIndex, varBinds) in nextCmd( SnmpEngine(), CommunityData('public'), UdpTransportTarget((host, 161)), ContextData(), ObjectType(ObjectIdentity(oid)), lookupMib=False, lexicographicMode=True ): if errorIndication: error_msg = str(errorIndication) print(error_msg) print(error_msg, file=f) break elif errorStatus: error_msg = '%s at %s' % (errorStatus.prettyPrint(), errorIndex and varBinds[int(errorIndex) - 1][0] or '?') print(error_msg) print(error_msg, file=f) break else: for varBind in varBinds: cheia = '%s = %s' % varBind print(cheia) print(cheia, file=f) # Solicita o endereço IP ao usuário endereco_ip = input("Digite o endereço IP da impressora: ") output_file = input("Digite o nome do arquivo de saída: ") # Chama a função retorno com o endereço IP fornecido pelo usuário retorno(endereco_ip, '1.3.6.1.2.1.43.5.1.1.17.1', output_file)
Como Funciona?
Verificação de Módulos: O script começa verificando se o módulo pysnmp
está instalado.
Instalação Automática: Se o módulo não estiver instalado, o script o instala automaticamente usando pip.
Reinício do Script: Após a instalação, o script se reinicia para garantir que todos os módulos necessários estejam disponíveis.
Execução do Comando SNMP: O script realiza a consulta SNMP na impressora e salva os resultados em um arquivo TXT especificado pelo usuário.
Por Que Isso é Útil?
- Automatização: Economiza tempo ao automatizar a instalação de dependências e execução do script.
- Facilidade de Uso: Simplifica o processo para usuários que não estão familiarizados com a instalação de pacotes Python ou consultas SNMP.
- Gestão de Impressoras: Permite extrair facilmente ramificações MIB das impressoras em rede, facilitando administração e monitoramento.
Este script é uma ótima solução para quem precisa integrar dados SNMP de impressoras em processos de gestão ou monitoramento. A automação da instalação e verificação de pacotes ajuda a evitar erros comuns e torna o processo mais acessível para iniciantes.
Se você quer se aprofundar mais, recomendo consultar a documentação oficial do pysnmp, biblioteca que possibilita a comunicação SNMP em Python.
Espero que essa solução seja útil para você! Se tiver dúvidas ou sugestões, fique à vontade para comentar.
Abraços e até a próxima!