A Python-based network utility that performs ICMP echo-based host discovery over a given IPv4 subnet. This project demonstrates foundational networking concepts and OS-level command execution.
The scanner accepts a CIDR-formatted network range (e.g., 192.168.1.0/24) and checks host availability by issuing ICMP Echo Requests using the system ping utility.
This project focuses on clarity, correctness, and cross-platform compatibility, making it suitable for beginners learning networking fundamentals.
- CIDR-based subnet handling using ipaddress
- ICMP Echo Request–based host detection
- Cross-platform support (Windows / Linux)
- Clear console output indicating host availability
- IPv4 addressing and subnetting
- ICMP protocol fundamentals
- OS-level command execution from Python
- Sequential network probing logic
- Hosts are scanned sequentially, which impacts performance on larger subnets
- Scan scope is intentionally limited (first 10 hosts)
- No latency (RTT) measurement
- No real-time or continuous monitoring
- Relies on external ping command execution
These limitations are deliberate to keep the implementation beginner-friendly.
- Asynchronous or concurrent scanning
- Full subnet coverage
- Round-trip time (RTT) extraction
- Continuous monitoring mode
- Structured output (JSON / CSV)
- Raw ICMP implementation (no shell calls)
Internet Control Message Protocol (ICMP) operates at the network layer and is used for diagnostic and control messaging.
When running:
ping 192.168.1.1
- An ICMP Echo Request is sent
- The target responds with an Echo Reply
- Receipt of the reply confirms host reachability
- Launches hundreds of ICMP probes simultaneously
- Updates host status every few seconds
- Identifies hosts going UP or DOWN
- Works on Windows and Linux without admin privileges
This is real scanning behavior.