iPyScan é um scanner de portas TCP moderno escrito em Python 3. Ele oferece suporte a varredura multithread, captura de banners de serviços, exportação em JSON/CSV e uma interface de linha de comando completa.
Trata-se de uma aplicação voltada principalmente para sistemas GNU/Linux (embora o interpretador Python 3 no Windows também execute a aplicação normalmente), com o objetivo de realizar a varredura de portas. A aplicação verifica quais portas estão abertas em um intervalo de portas fornecido por argumentos, retornando OPEN em caso positivo. Os argumentos fornecidos consistem no endereço do host ou IP do alvo a ser analisado, seguido do intervalo de portas inicial e final.
OBS.: Se o objetivo for escanear apenas uma porta, basta fornecer o mesmo valor para os dois últimos parâmetros.
PyScan/
├── ipyscan/ # Pacote principal renomeado
│ ├── main.py # Permite rodar com python -m ipyscan
│ ├── scanner/
│ │ └── input_validation.py
│ │ └── network_utils.py
│ │ └── port_scanner.py
│ ├── utils/
│ │ └── banner.py
│ │ └── exporter.py
│ └── ipyscan.py # Renomeie como ipyscan/main.py
├── tests/
│ └── test_core.py
├── pyproject.toml # Configuração moderna
├── setup.cfg # Metadados do projeto
├── README.md
├── LICENSE # MIT ou GPL
- ✅ Escaneamento de portas TCP (com multithread)
- ✅ Captura de banner de serviços (HTTP, FTP, SSH, etc)
- ✅ Exportação em JSON ou CSV
- ✅ Interface via
argparse - ✅ Testes automatizados com
unittest - ✅ Pronto para instalação via
pip
git clone https://github.com/werdelesmarcio/ipyscan.git
cd ipyscan
pip install .ipyscan --target 127.0.0.1 --ports 20-80 --threads 100 --output json| Flag | Descrição | Exemplo |
|---|---|---|
--target |
IP ou hostname do alvo | 127.0.0.1 |
--ports |
Faixa de portas (ex: 20-80) |
20-100 |
--threads |
Número de threads (default: 100) | --threads 200 |
--output |
Formato de exportação | json ou csv |
[
{
"port": 22,
"banner": "SSH-2.0-OpenSSH_8.4"
},
{
"port": 80,
"banner": "HTTP/1.1 200 OK"
}
]- Banner grabbing com heurísticas por porta
- Testes automatizados com
unittest - Exportação JSON/CSV
- Ajuda CLI detalhada com
--help - Banner seguro com
subprocess - Scan UDP
- Modo silencioso
--quiet - Interface web (Flask ou GUI)
Este projeto está sob Licença GPL-3.0. Para mais informações, consulte a documentação de licença no link abaixo.
Pull requests são bem-vindos! Para grandes mudanças, abra uma issue antes.
Desenvolvido por Werdeles Marcio - 2025
Um praise para os cúbicos que contribuíram neste projeto 👏
Werdeles Soares 💻 Desenvolvedor |
Fabi Gonçalves 👨💻 Colaboradora |
Matheus Oliveira 👨💻 Colaborador |
Caso tenha alguma dúvida confira este guia de como contribuir no GitHub
Se quiser entrar em contato, crie um issue no GitHub ou envie um e-mail para [email protected]. Obrigado!


