A professional Python network scanner for cybersecurity education — detects online hosts, resolves hostnames, fingerprints operating systems, scans open ports, and exports results.
This tool is for educational purposes only. Only scan networks and devices that you own or have explicit permission to test. Unauthorized network scanning may violate local laws and regulations. The author assumes no responsibility for misuse of this tool.
- 🔍 Host Discovery — Detects all online devices on a network using ICMP ping
- 🌐 DNS Resolution — Resolves IP addresses to hostnames automatically
- 🖥️ OS Fingerprinting — Guesses the operating system via TTL analysis
- 🔌 Port Scanning — TCP connect scan on 17 common ports with service names
- 🧭 MAC Address Detection — Retrieves MAC addresses from the ARP table
- 📊 Rich Terminal UI — Colored output, live progress bar, and formatted tables
- 💾 Export Results — Save scan results as JSON or CSV for reporting
- ⚡ Multi-threaded — Fast parallel scanning with up to 100 concurrent threads
- Python 3.8 or higher
- pip
git clone https://github.com/taguianas/Pyradar.git
cd Pyradarpip install -r requirements.txtOr install as a package (enables the pyradar command globally):
pip install .python -m pyradarpython -m pyradar 192.168.1.0/24python -m pyradar 192.168.1 # treated as 192.168.1.0/24
python -m pyradar 192.168.1.5 # treated as 192.168.1.0/24python -m pyradar --output json # saves pyradar_YYYYMMDD_HHMMSS.json
python -m pyradar --output csv # saves pyradar_YYYYMMDD_HHMMSS.csvpython -m pyradar --helpScanning 192.168.1.0/24 — 254 hosts
● 192.168.1.1 is online
● 192.168.1.10 is online
Enriching host data...
Scan Results — 2 host(s) online
┌────┬───────────────┬──────────────┬───────────────────┬──────────────┬──────────────────────────────┬──────────┐
│ # │ IP Address │ Hostname │ MAC │ OS Guess │ Open Ports │ Status │
├────┼───────────────┼──────────────┼───────────────────┼──────────────┼──────────────────────────────┼──────────┤
│ 1 │ 192.168.1.1 │ Xen0w │ N/A │ Linux/macOS │ 80 (HTTP), 443 (HTTPS) │ ● Online │
│ 2 │ 192.168.1.10 │ Anas │ N/A │ Windows │ 135 (RPC), 445 (SMB) │ ● Online │
└────┴───────────────┴──────────────┴───────────────────┴──────────────┴──────────────────────────────┴──────────┘
Pyradar/
├── pyradar/
│ ├── __init__.py # Version info
│ ├── __main__.py # Entry point (python -m pyradar)
│ ├── cli.py # Argument parsing and main flow
│ ├── network.py # IP/mask detection and network parsing
│ ├── scanner.py # Ping scanning and thread management
│ ├── resolver.py # DNS, MAC, OS fingerprinting, port scanning
│ ├── exporter.py # JSON and CSV export
│ └── ui.py # Rich terminal UI components
├── requirements.txt
├── pyproject.toml
└── README.md
| Port | Service | Port | Service |
|---|---|---|---|
| 21 | FTP | 443 | HTTPS |
| 22 | SSH | 445 | SMB |
| 23 | Telnet | 3306 | MySQL |
| 25 | SMTP | 3389 | RDP |
| 53 | DNS | 5900 | VNC |
| 80 | HTTP | 8080 | HTTP-Alt |
| 110 | POP3 | 8443 | HTTPS-Alt |
| 135 | RPC | ||
| 139 | NetBIOS |
| Package | Purpose |
|---|---|
rich |
Terminal UI, colors, tables, progress bar |
scapy |
Network packet manipulation (ARP) |
- Xen0w
- taguianas
This project is licensed under the MIT License. See the LICENSE file for details.