Este blog é um complemento do nosso canal no YouTube. Clique em @CanalQb para seguir e acompanhar nossos vídeos!

Sugestões de pesquisas

Automatizando Extração de Ramificações MIB em Impressoras com Python

#Python; #SNMP; #Automação
@CanalQb

Automatizando a Extração de Ramificações MIB de Impressoras Python 3.8.10 + pysnmp = Extraindo valores de MIB para TXT






Sempre crie uma frase de segurança única para jogos, airdrops e qualquer outra atividade de origem desconhecida, em vez de usar sua carteira principal.



Para executar o script, utilizei o Python 3.8.10: https://cb.run/3N24
Qualquer outra versão pode precisar de adaptação!

Hoje quero compartilhar com vocês um script Python super útil para simplificar a extração das ramificações MIB de impressoras em rede. Esse script realiza consultas SNMP para obter informações das impressoras e verifica automaticamente se todos os módulos necessários estão instalados. Caso algum módulo esteja faltando, ele o instala e reinicia o script para garantir o funcionamento correto. Vamos conferir como funciona?
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!

Postar um comentário

Comente só assim vamos crescer juntos!
CanalQb mais próximo Quer falar com o CanalQb?
Em que posso te ajudar?
Fale comigo