{"id":49296357,"url":"https://github.com/zer0g0ld/znetscan","last_synced_at":"2026-04-26T04:00:55.160Z","repository":{"id":353880965,"uuid":"1221206834","full_name":"Zer0G0ld/ZNetScan","owner":"Zer0G0ld","description":" ZNetScan - Scanner de Rede Inteligente com detecção de MAC randomizado e fingerprint","archived":false,"fork":false,"pushed_at":"2026-04-26T02:38:40.000Z","size":85,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-26T03:32:58.018Z","etag":null,"topics":["network","pypi","pypi-package","scan-tool","scanner"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/znetscan/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Zer0G0ld.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-25T22:25:19.000Z","updated_at":"2026-04-26T03:17:38.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/Zer0G0ld/ZNetScan","commit_stats":null,"previous_names":["zer0g0ld/znetscan"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/Zer0G0ld/ZNetScan","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zer0G0ld%2FZNetScan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zer0G0ld%2FZNetScan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zer0G0ld%2FZNetScan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zer0G0ld%2FZNetScan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Zer0G0ld","download_url":"https://codeload.github.com/Zer0G0ld/ZNetScan/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zer0G0ld%2FZNetScan/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32285283,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-25T18:29:39.964Z","status":"online","status_checked_at":"2026-04-26T02:00:05.962Z","response_time":129,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["network","pypi","pypi-package","scan-tool","scanner"],"created_at":"2026-04-26T04:00:54.343Z","updated_at":"2026-04-26T04:00:55.154Z","avatar_url":"https://github.com/Zer0G0ld.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🌐 ZNetScan - Scanner de Rede Inteligente\n\n[![Python Version](https://img.shields.io/badge/python-3.7+-blue.svg)](https://www.python.org/downloads/)\n[![License](https://img.shields.io/badge/license-GPLv3-red.svg)](LICENSE)\n[![Platform](https://img.shields.io/badge/platform-Linux%20%7C%20macOS%20%7C%20Windows-lightgrey)]()\n\n**ZNetScan** é uma ferramenta que descobre todos os dispositivos na sua rede e identifica quais MAC addresses são **reais** (de fábrica) e quais são **falsos** (randomizados por privacidade). Além disso, usa **fingerprint** para reconhecer o mesmo dispositivo mesmo quando ele muda de MAC!\n\n\u003e 🔥 **Diferencial**: Enquanto outros scanners só mostram o MAC, o ZNetScan te diz se você pode confiar nele e identifica dispositivos que se escondem atrás de MACs falsos!\n\n## 📸 Demonstração\n\n```bash\n$ python main.py --method arp\n\n================================================================================================================\nIP               MAC                  Dispositivo Identificado            Confiança    Visto\n----------------------------------------------------------------------------------------------------------------\n192.168.0.1      3C:58:5D:78:AD:DE    Roteador Sagemcom                   ✅ ALTA      45\n192.168.0.6      EC:6C:9A:9E:9A:62    Computador João                     ✅ ALTA      23\n192.168.0.37     02:F6:E8:0E:1C:3D    iPhone Maria                        ✅ ALTA      12\n192.168.0.38     9A:B2:C5:2C:39:7F    📱 Smartphone (desconhecido)        ⚠️ MÉDIA     3\n192.168.0.42     96:2F:8A:09:02:6A    🆕 📱 Smartphone (desconhecido)      ❌ BAIXA     1\n================================================================================================================\n\n📊 Total de dispositivos: 5\n   ✅ Dispositivos conhecidos: 4\n   🆕 Novos dispositivos: 1\n   🔄 MACs randomizados: 3\n```\n\n## 🎯 O que este scanner faz?\n\n| Recurso | O que significa | Para que serve |\n|---------|----------------|----------------|\n| **Scan ARP** | Descobre dispositivos em segundos | Mapear sua rede rapidamente |\n| **Scan Ping** | Alternativa sem sudo | Quando não tem permissão de root |\n| **Detecta MAC falso** | Identifica iPhones/Androids | Saber se o MAC é confiável |\n| **Fingerprint** | Reconhece dispositivos mesmo com MAC diferente | Identificar o mesmo celular em redes diferentes |\n| **Gerencia dispositivos** | Nomeia, lista e vê histórico | Organizar e identificar dispositivos |\n| **Scan de portas** | Verifica portas abertas | Auditoria de segurança |\n| **Exporta resultados** | JSON, CSV, HTML, TXT | Relatórios e integrações |\n\n## 🚀 Instalação (3 passos)\n\n```bash\n# 1. Instalar arp-scan (necessário para scan rápido)\nsudo apt install arp-scan  # Linux\nbrew install arp-scan      # macOS\n\n# 2. Clonar e entrar no projeto\ngit clone https://github.com/Zer0G0ld/ZNetScan.git\ncd ZNetScan\n\n# 3. Setup automático\npython3 setup_venv.py\nsource venv/bin/activate\n```\n\n## 📖 Comandos principais\n\n### 🔍 Scan de Rede\n```bash\n# Scan rápido (recomendado) - mostra confiabilidade dos MACs\nsudo python main.py --method arp\n\n# Scan alternativo (sem sudo)\npython main.py --method ping\n\n# Escanear rede específica\npython main.py --network 192.168.0.0/24 --method arp\n```\n\n### 📊 Gerenciamento de Dispositivos (Fingerprint)\n```bash\n# Listar todos os dispositivos conhecidos\npython main.py --list-devices\n\n# Nomear um dispositivo (aprender quem é)\npython main.py --learn-device dev_20260425_123456 \"Celular da Maria\"\n\n# Ver histórico completo de um dispositivo\npython main.py --device-history dev_20260425_123456\n\n# Remover um dispositivo do banco\npython main.py --forget-device dev_20260425_123456\n```\n\n### 🔌 Scan de Portas\n```bash\n# Escanear portas de um IP\npython main.py --port-scan 192.168.1.1\n\n# Portas específicas\npython main.py --port-scan 192.168.1.1 --ports 22,80,443,3306\n\n# Intervalo de portas\npython main.py --port-scan 192.168.1.1 --ports range:1-1000\n```\n\n### ℹ️ Informações e Ajuda\n```bash\n# Sistema de ajuda interativo\npython main.py help\npython main.py help scan\npython main.py help devices\npython main.py help ports\n\n# Analisar um MAC específico\npython main.py --mac-info AA:BB:CC:DD:EE:FF\n\n# Mostrar interfaces de rede\npython main.py --interfaces\n```\n\n### 📤 Exportação\n```bash\n# Salvar resultado em JSON\npython main.py --method arp --output json -f minha_rede.json\n\n# Salvar em CSV (planilha)\npython main.py --method arp --output csv -f minha_rede.csv\n\n# Gerar relatório HTML\npython main.py --method arp --output html -f relatorio.html\n```\n\n## 🔍 Entendendo o Fingerprint\n\n### O problema: dispositivos que escondem o MAC\nSmartphones modernos (iPhone, Android) **randomizam o MAC** a cada rede que se conectam para proteger sua privacidade.\n\n### A solução: identificação por múltiplas características\nO ZNetScan identifica o mesmo dispositivo por:\n- **Padrão do chip Wi-Fi** (mesmo com MAC falso)\n- **Comportamento de horários** (quando costuma aparecer)\n- **Histórico de IPs** (que rede usa)\n\n### Níveis de confiança do fingerprint\n| Nível | Significado | O que fazer |\n|-------|-------------|-------------|\n| **✅ ALTA** | Mesmo dispositivo com certeza | Pode confiar, nomeie o dispositivo |\n| **⚠️ MÉDIA** | Provavelmente o mesmo | Observe mais alguns dias |\n| **❌ BAIXA** | Dispositivo novo ou inconclusivo | Ainda aprendendo |\n\n### Exemplo prático\n```bash\n# Primeiro scan: iPhone aparece com MAC aleatório\npython main.py --method arp\n# Mostra: \"📱 Smartphone (desconhecido)\"\n\n# Nomeie o dispositivo\npython main.py --learn-device dev_xxx \"iPhone da Ana\"\n\n# Segundo scan (dias depois): iPhone com MAC diferente\npython main.py --method arp\n# Agora mostra: \"iPhone da Ana\" ✅ reconhecido!\n```\n\n## 🔍 Entendendo a detecção de MAC falso\n\n### ✅ Confiança ALTA (MAC verdadeiro)\n```\nMAC: 3C:58:5D:78:AD:DE\nSegundo caractere: 'C' (0,4,8,C)\n→ Este MAC é GRAVADO no hardware. Não muda. Confiável!\n```\n\n### ⚠️ Confiança BAIXA (MAC falso/randomizado)\n```\nMAC: 26:BC:9C:38:81:57\nSegundo caractere: '6' (2,6,A,E)\n→ Este MAC é CRIADO POR SOFTWARE. Muda a cada rede. Não confie como ID único!\n```\n\n### Por que isso acontece?\n\n- **iPhone/Android**: Criaram MACs falsos em 2017 para proteger sua privacidade\n- **Resultado**: Uma pessoa com o mesmo celular aparece como dispositivos diferentes\n- **Solução**: Use o **sistema de fingerprint** do ZNetScan para identificar!\n\n## 📁 Estrutura do projeto\n\n```\nZNetScan/\n├── main.py                    # 👉 Ponto de entrada principal\n├── network/\n│   ├── mac_utils.py          # 🔥 Detecta MAC falso (bit U/L)\n│   └── device_fingerprint.py # 🆔 Identifica dispositivos que mudam de MAC\n├── scanners/                  # Métodos de descoberta (ARP, Ping, Portas)\n├── output/                    # Formatadores e exportadores\n├── utils/\n│   ├── logger.py             # Sistema de logs com cores\n│   └── help.py               # 📚 Sistema de ajuda interativo\n├── docs/                      # Documentação técnica completa\n└── config/                    # Configurações\n```\n\n## 🎓 Aprenda mais\n\n- [Como funciona a detecção de MAC randomizado?](docs/01_MAC_ADDRESS_EXPLAINED.md)\n- [Arquitetura do ZNetScan](docs/02_HOW_ZNETSCAN_WORKS.md)\n- [Sistema de ajuda interativo](docs/03_HELP_SYSTEM.md)\n\n## 🛠️ Para desenvolvedores\n\n```bash\n# Instalar ferramentas extras\npip install black flake8 pytest\n\n# Formatar código\nblack .\n\n# Verificar estilo\nflake8 .\n\n# Executar testes\npytest tests/\n```\n\n## 🐛 Problemas comuns\n\n| Problema | Solução |\n|----------|---------|\n| `arp-scan: command not found` | `sudo apt install arp-scan` |\n| `Permission denied` no scan ARP | Use `sudo` ou método ping |\n| Scan muito lento | Use `--method arp` (mais rápido) |\n| Dispositivo desconhecido aparece sempre | Nomeie com `--learn-device` |\n| MACs randomizados não identificados | Já são identificados automaticamente! |\n\n## 📊 Comparação com outras ferramentas\n\n| Ferramenta | Velocidade | Detecta MAC falso | Fingerprint | Exporta JSON | Ajuda interativa |\n|------------|------------|-------------------|-------------|--------------|------------------|\n| **ZNetScan** | ⚡ Rápido | ✅ SIM | ✅ SIM | ✅ Sim | ✅ Sim |\n| nmap | 🐌 Lento | ❌ Não | ❌ Não | ✅ Sim | ❌ Não |\n| arp-scan | ⚡ Rápido | ❌ Não | ❌ Não | ❌ Não | ❌ Não |\n| netdiscover | ⚡ Rápido | ❌ Não | ❌ Não | ❌ Não | ❌ Não |\n\n## 🤝 Contribuir\n\n1. Fork o projeto\n2. Crie uma branch: `git checkout -b minha-feature`\n3. Commit: `git commit -m 'Adiciona feature'`\n4. Push: `git push origin minha-feature`\n5. Abra um Pull Request\n\n## 📄 Licença\n\n**GNU General Public License v3.0** - Use, modifique e distribua livremente.\n\n## 👤 Autor\n\n**Zer0G0ld** - [GitHub](https://github.com/Zer0G0ld)\n\n---\n\n⭐ **Gostou? Dê uma estrela no GitHub!**  \n🐛 **Encontrou um bug?** [Abra uma issue](https://github.com/Zer0G0ld/ZNetScan/issues)\n\n---\n\nDesenvolvido com 🐍 por **Zer0G0ld**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzer0g0ld%2Fznetscan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzer0g0ld%2Fznetscan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzer0g0ld%2Fznetscan/lists"}