Script Python com interface gráfica para detectar o CMS (Content Management System) usado por websites, com prioridade especial para detecção de Drupal.
- Interface gráfica intuitiva (tkinter)
- Sistema de retry automático: Tenta até 3 vezes cada domínio que falhar
- Backoff exponencial entre tentativas (2s, 4s, 6s)
- Mostra "Tentativa X/Y" no status durante retry
- Só marca como erro após esgotar todas as tentativas
- Detecção robusta de Drupal com múltiplos métodos:
- Meta tags Generator
- Headers HTTP específicos (X-Drupal-Cache)
- Arquivos característicos (CHANGELOG.txt, drupal.js, etc.)
- Padrões no código HTML
- Detecção de versão do Drupal
- Suporte para outros CMS: WordPress, Joomla, Magento, Wix, Shopify, Squarespace
- Flexibilidade de entrada: aceita domínios em diversos formatos:
example.comhttps://example.comhttp://example.com/pathwww.example.com
- Exportação para CSV dos resultados
- Interface visual com cores destacando sites Drupal em verde
- Varredura em thread separada (não trava a interface)
- Python 3.6+
- requests
# Clone ou baixe o repositório
cd check-cms
# Instale as dependências
pip install -r requirements.txtpython cms_detector.pyou
python3 cms_detector.py- Cole os domínios: Na área de texto superior, cole uma lista de domínios/URLs (um por linha)
- Clique em "Iniciar Varredura": O script começará a verificar cada site
- Veja os resultados: Os resultados aparecem na tabela inferior
- Sites Drupal aparecem com fundo verde 🟢
- Outros CMS aparecem com fundo bege
- Erros aparecem com fundo rosa
- Exportar: Clique em "Exportar CSV" para salvar os resultados
example.com
www.example.com
https://example.com
http://example.com
https://example.com/some/path
Para cada site, o detector fornece:
- URL: O endereço verificado
- CMS: Nome do CMS detectado (ou "Desconhecido")
- Confiança: Nível de confiança da detecção (Alta/Média/Baixa)
- Detalhes: Informações adicionais:
- Para Drupal: versão detectada e número de indicadores encontrados
- Para outros CMS: score de confiança
O script usa múltiplos métodos para garantir detecção precisa de sites Drupal:
- Meta Tags: Busca por
<meta name="Generator" content="Drupal"> - Headers HTTP: Verifica
X-Drupal-CacheeX-Generator - Arquivos Específicos:
/CHANGELOG.txt/core/CHANGELOG.txt/misc/drupal.js/core/misc/drupal.js/modules/system/system.css
- Padrões HTML:
Drupal.settingssites/default/filessites/all/themesdata-drupal-selector
Os resultados podem ser exportados para CSV com as seguintes colunas:
- URL
- CMS
- Confiança
- Detalhes
O arquivo é salvo com timestamp: cms_results_YYYYMMDD_HHMMSS.csv
Você pode ajustar os timeouts e comportamentos editando a classe CMSDetector:
self.timeout = 10: Timeout em segundos para requisições HTTPself.max_retries = 3: Número de tentativas antes de marcar como erroself.retry_delay = 2: Delay inicial em segundos entre tentativas (usa backoff exponencial)- Adicionar novos padrões de detecção
- Adicionar novos CMS
O detector tenta automaticamente reconectar quando ocorrem erros de timeout ou conexão:
- Primeira tentativa: Imediata
- Segunda tentativa: Aguarda 2 segundos
- Terceira tentativa: Aguarda 4 segundos
- Se todas falharem, marca como erro e mostra quantas tentativas foram feitas
- Abra o programa
- Cole uma lista como:
drupal.org
wordpress.org
joomla.org
example.com
mysite.com
- Clique em "Iniciar Varredura"
- Aguarde a conclusão
- Sites Drupal aparecerão destacados em verde
- Exporte os resultados se necessário
- O script tenta primeiro HTTPS, depois HTTP se falhar
- Timeout padrão de 10 segundos por site
- Sistema de retry: Até 3 tentativas automáticas para cada site com erro
- Durante o retry, o status mostra "Tentativa X/Y"
- A varredura pode ser interrompida clicando em "Parar"
- Sites inacessíveis (após todas as tentativas) aparecem como "Erro" nos resultados
Sinta-se à vontade para contribuir com:
- Novos métodos de detecção
- Suporte para mais CMS
- Melhorias na interface
- Correções de bugs
Este projeto é de código aberto e está disponível sob a licença MIT.