Este script em Python realiza o mapeamento automático de portas de switches de rede (Aruba, Cisco, HP, Dell, etc.) utilizando o protocolo SNMP. Ele identifica dispositivos conectados, resolve nomes de fabricantes via API online e estima o tipo de equipamento (PDV, Câmera, PC, etc.) para auxiliar em inventários de rede.
- Mapeamento Universal: Compatível com qualquer switch que suporte Bridge-MIB (RFC 1493).
- Tradução de Portas: Converte IDs internos SNMP para nomes reais de interfaces (ex:
Gi1/0/1ouPort 1). - Identificação de Fabricante: Consulta automática à API MacVendors para descobrir a marca do dispositivo.
- Classificação Inteligente: Estima o tipo de dispositivo (PDV, Coletor, Câmera, PC) com base no fabricante (personalizável).
- Modo Híbrido:
- Manual: Escaneia um único IP digitado.
- Lote (Batch): Lê uma lista de IPs de um arquivo
.txte processa todos sequencialmente.
- Exportação Automática: Gera relatórios em
.txtorganizados por data e IP.
Este script foi atualizado para atuar como um Scanner Universal de Switches, resolvendo problemas de compatibilidade com a linha HPE OfficeConnect.
- Estratégia Híbrida Inteligente:
- Tenta leitura via Q-BRIDGE MIB (Ideal para HPE 1920S e switches modernos/Linux).
- Se falhar, tenta leitura via Standard Bridge MIB (Cisco, TP-Link, etc).
- Último recurso: Tenta contexto de VLAN Legado (
community@1).
- Mapeamento Real de Portas: Cruza o índice SNMP com a descrição da interface (ex: exibe
GE1/0/24em vez de24). - Identificação de Dispositivos: Consulta API online para identificar o fabricante do dispositivo conectado (Apple, Dell, Intel, etc).
pip install pysnmp requests- Python 3.6+
- Acesso de rede aos switches (porta 161 UDP liberada).
- Comunidade SNMP configurada nos switches (Padrão no script:
public, mas solicitada na execução). - Conexão com Internet (para consulta de API de fabricantes).
Devido a mudanças recentes na biblioteca pysnmp, é necessário instalar versões específicas para garantir a compatibilidade.
-
Clone o repositório:
git clone [https://github.com/paimmauricio/SNMP_Switchs.git](https://github.com/paimmauricio/SNMP_Switchs.git) cd SNMP_Switchs -
Crie um ambiente virtual (Recomendado):
python3 -m venv venv source venv/bin/activate # Linux/Mac # ou venv\Scripts\activate # Windows
-
Instale as dependências exatas:
pip install requests "pysnmp==4.4.12" "pyasn1==0.4.8"
O script gerencia automaticamente a estrutura de diretórios:
.
├── scan_switchs.py # O script principal
├── IPsSwitchs/ # (Entrada) Coloque seus arquivos .txt com listas de IPs aqui
│ └── lojas_zona_sul.txt
└── RelatoriosSwitchs/ # (Saída) Onde os relatórios gerados serão salvos
└── Relatorio_192_168_0_10.txt
Execute o script no terminal:
python scan_switchs.pyVocê verá um menu interativo:
Ideal para testes rápidos.
- Digite o IP do switch.
- Confirme a comunidade SNMP.
- O resultado aparece na tela e é salvo na pasta
RelatoriosSwitchs/.
Ideal para inventário de grandes redes.
- Crie um arquivo
.txtdentro da pastaIPsSwitchs/. - Coloque um IP por linha (Exemplo):
192.168.1.10
192.168.1.11
10.0.0.254
- No menu do script, escolha a opção 2 e digite o nome do arquivo (ex:
switches.txt).
No arquivo scan_switchs.py, você pode editar a função estimar_tipo_equipamento para adicionar regras específicas do seu negócio:
if "nome_do_fabricante" in v: return "Novo Tipo"LEVANTAMENTO: 192.168.1.10 em 05/01/2026 14:00
========================================================================================================================
PORTA | IP ADDRESS | TIPO | FABRICANTE | MAC
------------------------------------------------------------------------------------------------------------------------
1 | 192.168.1.50 | PDV | Toshiba Global Commerce.. | 24:2F:FA:XX:XX:XX
2 | -- | Coletor/Impressora | Zebra Technologies Inc | 10:4F:58:XX:XX:XX
48 | 10.0.0.1 | Rede/Wifi | Cisco Systems | 00:11:22:XX:XX:XX
Sinta-se à vontade para abrir Issues ou Pull Requests para melhorar a detecção de dispositivos ou compatibilidade com novos switches.
Este projeto está sob a licença MIT.
- Execute antes em uma máquina virtual
- Crie um ponto de restauração
- Se algo não funcionar como esperado, use a opção de restauração para voltar ao estado anterior.
- Este script foi testado em versões recentes do Linux Parrot e Oracle, mas recomenda-se criar um backup completo do sistema antes de utilizá-lo.
| 💳 Transferência Unibanco | 🏦 Pix | 💰 QR Code PayPal | 🌍 Site PayPal |
|---|---|---|---|
| Agência: 8488 C/C: 0047854-9 |
paim.mauricio@gmail.com | ![]() |
Doação Direta pelo PayPal |

