# 🔍 MiniShodan - Lightweight Internet Scanner with Web Interface
MiniShodan is a simplified, self-hosted version of Shodan built using Python and Flask.
It lets you scan public IP addresses, enumerate open ports and services, and store the results for future reference — all from a clean, web-based dashboard.
---
## 🚀 About
This project is designed for cybersecurity researchers, penetration testers, and hobbyists who want to build their own Shodan-like reconnaissance tool.
It's modular, simple to run, and works perfectly in a local lab environment.
Whether you're scanning Indonesian IP ranges or doing targeted recon, MiniShodan helps you organize and visualize your findings — fast and lightweight.
---
## 🏗️ Features
- 🌐 Web-based interface built with Flask
- 🔍 Customizable IP scanning logic (ZGrab2/Nmap compatible)
- 🧠 Detects open ports, services, banners
- 🗂️ Result storage and retrieval system
- 📊 Basic dashboard for analysis
- 🖥️ Can be hosted locally or expanded for production use
---
## 📦 Folder Structure
---
project-root/
├── .venv/ # Python virtual environment
├── backend/ # Flask app (main engine)
├── static/ # CSS/JS/assets for frontend (if any)
├── templates/ # HTML templates for web UI
└── README.md # You are here
---
---
## 🧪 Getting Started
### 1. Clone the Repository
```bash
git clone https://github.com/armanridho/shodan-like.git
cd shodan-likepython -m venv .venv
source .venv/bin/activate # Linux/macOS
.venv\Scripts\activate # Windowspip install -r requirements.txtcd backend
python app.pyVisit: http://127.0.0.1:5000
- Python 3.10+
- Flask
- SQLAlchemy
- Any custom modules you use for scanning (ZMap, ZGrab2, etc.)
Run
pip freeze > requirements.txtto generate your current dependencies.
- Add authentication (admin login)
- Export results to CSV/JSON
- Add charts and stats
- IP range import and batch scanning
- REST API endpoint for integration
Pull requests are welcome! If you find a bug or want a feature, feel free to open an issue or start a discussion.
This tool is made for educational and research purposes only. Do not use it on networks you do not own or have permission to scan. The author is not responsible for any misuse or damage caused.
Made with 💀 and ☕ by armanridho