Python - Automatizando a Extração de Ramificações MIB de Impressoras Python 3.8.10 + pysnmp = Extraindo valores de MIB para TXT
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 coisa de origem desconhecida, em vez de usar sua carteira principal.
Para executar o Script, eu 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 que desenvolvi para simplificar a extração das ramificações MIB de impressoras em rede. Esse script não apenas realiza consultas SNMP para obter informações das impressoras, mas também verifica se todos os módulos necessários estão instalados. Se algum módulo estiver faltando, ele instala automaticamente e reinicia o script. Vamos conferir como funciona?
import sysimport subprocessimport pkg_resources# Lista dos pacotes necessáriosrequired = {'pysnmp'}# Verifica e instala os pacotes que não estão instaladosinstalled = {pkg.key for pkg in pkg_resources.working_set}missing = required - installedif 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 instaladosfrom 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)breakelif errorStatus:error_msg = '%s at %s' % (errorStatus.prettyPrint(),errorIndex and varBinds[int(errorIndex) - 1][0] or '?')print(error_msg)print(error_msg, file=f)breakelse:for varBind in varBinds:cheia = '%s = %s' % varBindprint(cheia)print(cheia, file=f)# Solicita o endereço IP ao usuárioendereco_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árioretorno(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.
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 e salva os resultados em um arquivo especificado pelo usuário.
Por Que Isso é Útil?
Automatização: Economiza tempo ao automatizar a instalação de dependências.
Facilidade de Uso: Simplifica o processo de configuração e execução de scripts SNMP, especialmente para aqueles que não estão familiarizados com a instalação de pacotes Python.
Gestão de Impressoras: Permite a extração fácil e eficiente das ramificações MIB das impressoras em rede, facilitando a administração e monitoramento desses dispositivos.
Espero que essa solução seja útil para vocês! Se tiverem dúvidas ou sugestões, fiquem à vontade para comentar.
Abraços e até a próxima!
Nenhum comentário
Comente só assim vamos crescer juntos!
Observação: somente um membro deste blog pode postar um comentário.