Este script Python realiza um scan de rede para detectar dispositivos ativos e verificar se estão executando o Zabbix Agent. O script coleta informações como hostname e sistema operacional dos dispositivos encontrados e salva essas informações em arquivos separados.
O ZabbixNetExplorer facilita a descoberta de dispositivos em uma rede local e verifica sua compatibilidade com o Zabbix (um sistema de monitoramento de rede). A principal funcionalidade do script é identificar dispositivos que possuem o Zabbix Agent ativo e coletar dados sobre cada máquina, como nome do host e sistema operacional.
Após a execução, o script gera dois arquivos de saída com a listagem de dispositivos:
- ZabbixOnDevices.txt: Contém os dispositivos com Zabbix Agent ativo.
- ZabbixOffDevices.txt: Contém os dispositivos sem Zabbix Agent ativo.
Além disso, um resumo é exibido no console, indicando a quantidade de dispositivos ativos e inativos, bem como a contagem de hosts por sistema operacional.
Para executar o script, você precisa garantir que o ambiente de desenvolvimento possua os seguintes requisitos:
- Python 3.6 ou superior.
- Bibliotecas Python necessárias:
- nmap: Para verificar o sistema operacional dos dispositivos.
- scapy: Para realizar o scan de rede usando pacotes ARP.
Para instalar as bibliotecas necessárias, execute:
pip install python-nmap scapy
O script foi desenvolvido para Python 3.6 ou superior. Verifique sua versão com:
python --version
Se necessário, baixe e instale o Python aqui.
-
Abra o terminal (ou prompt de comando no Windows).
-
Navegue até o diretório do seu projeto:
cd /caminho/para/seu/projeto
-
Crie o ambiente virtual:
-
No Linux/macOS:
python3 -m venv venv
-
No Windows:
python -m venv venv
Isso cria a pasta
venv
com o ambiente virtual. -
-
No Linux/macOS:
source venv/bin/activate
-
No Windows:
.\venv\Scripts\activate
Após ativar, seu prompt de comando mudará para indicar que o ambiente virtual está ativo.
Se você tiver um arquivo requirements.txt
, instale as dependências com:
pip install -r requirements.txt
Caso contrário, use os comandos para instalar as bibliotecas necessárias diretamente:
pip install python-nmap scapy
Para desativar o ambiente virtual:
deactivate
Se necessário, recrie o ambiente virtual:
- Crie o ambiente virtual (Passo 2).
- Instale as dependências com
pip install -r requirements.txt
(Passo 4).
Antes de executar o script, instale as dependências e verifique se o Python 3.6+ está corretamente instalado.
O script escaneia a rede 192.168.1.0/24
por padrão. Para modificar a faixa de IP, altere a variável ip_range
no código:
ip_range = "192.168.1.0/24" # Substitua pela faixa de IP da sua rede
No terminal, navegue até o diretório do script e execute:
python network_scanner.py
O script solicitará confirmação antes de iniciar o escaneamento:
Este script realiza o scan da rede e verifica quais dispositivos têm o Zabbix Agent ativo. Concorda com isso? (S/N)
Digite S
para continuar ou N
para cancelar.
Após a confirmação, o script inicia o scan da rede, utilizando pacotes ARP para identificar dispositivos ativos e verificando a presença do Zabbix Agent na porta 10050
. Dispositivos com o Zabbix Agent ativo são salvos no arquivo ZabbixOnDevices.txt e os inativos em ZabbixOffDevices.txt.
Após o scan, o script exibe no console:
- A faixa de IP escaneada.
- O número total de dispositivos encontrados.
- O número de dispositivos com Zabbix Agent ativo.
- O número de dispositivos sem Zabbix Agent.
- A contagem de dispositivos por sistema operacional.
Arquivos gerados:
- ZabbixOnDevices.txt: Dispositivos com Zabbix Agent ativo.
- ZabbixOffDevices.txt: Dispositivos sem Zabbix Agent.
Resumo do Scan:
Faixa escaneada: 192.168.1.0/24
Dispositivos encontrados: 5
Ativos com Zabbix: 3
Inativos sem Zabbix: 2
Hosts por Sistema Operacional:
Linux: 2
Windows: 1
Desconhecido: 2
Dispositivos com Zabbix Agent:
Dispositivo1 - Sistema Operacional: Linux
Dispositivo2 - Sistema Operacional: Windows
Dispositivos sem Zabbix Agent:
Dispositivo3 - Sistema Operacional: Linux
Dispositivo4 - Sistema Operacional: Windows
Revise os arquivos gerados para identificar dispositivos com o Zabbix Agent ativo e para automatizar a adição de hosts no Zabbix.
setup()
: Inicia o script, solicita confirmação do usuário e inicia o processo de escaneamento.create_files()
: Cria os arquivos de saída ZabbixOnDevices.txt e ZabbixOffDevices.txt.scan_network(ip_range)
: Realiza o scan de rede usando pacotes ARP.data_machine_ip(ip)
: Usanmap
para obter informações sobre o sistema operacional e hostname.check_zabbix_agent(ip)
: Verifica a presença do Zabbix Agent na porta 10050.add_to_files(ip, mac, status)
: Registra informações sobre os dispositivos nos arquivos de saída.
Você pode ajustar a faixa de IP no código:
ip_range = "192.168.1.0/24" # Alterar para a faixa de IP da sua rede
- Execute o script:
python network_scanner.py
- Confirme a execução com
S
ouN
.
Após a execução, os arquivos ZabbixOnDevices.txt e ZabbixOffDevices.txt serão gerados com as informações dos dispositivos.
O script utiliza o módulo logging
para capturar erros e detalhes da execução. Você pode ajustar o nível de log, se necessário.
Se quiser contribuir, envie pull requests ou abra issues no GitHub.
Este projeto está licenciado sob a GNU General Public License v3.0. Consulte o arquivo LICENSE para mais detalhes.