https://github.com/paolosereno/lanscan
Network scanner application with advanced diagnostics and metrics visualization
https://github.com/paolosereno/lanscan
cpp gui-application lan qt6 scanner
Last synced: 9 months ago
JSON representation
Network scanner application with advanced diagnostics and metrics visualization
- Host: GitHub
- URL: https://github.com/paolosereno/lanscan
- Owner: paolosereno
- Created: 2025-10-03T09:02:38.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-10-03T12:12:33.000Z (10 months ago)
- Last Synced: 2025-10-03T12:16:11.409Z (10 months ago)
- Topics: cpp, gui-application, lan, qt6, scanner
- Homepage:
- Size: 102 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# LanScan - Network Scanner and Diagnostic Tool
[](https://opensource.org/licenses/MIT)
[](https://isocpp.org/)
[](https://www.qt.io/)
[](https://cmake.org/)
[](https://github.com/paolosereno/LanScan)
[](https://github.com/paolosereno/LanScan)
Network scanner application with advanced diagnostics and metrics visualization.
## Features
### ✅ Implemented (Phase 0-1)
- ✅ Network device discovery (IP, hostname, MAC)
- ✅ Multi-threaded IP range scanning
- ✅ Ping-based host discovery (cross-platform)
- ✅ DNS reverse lookup
- ✅ ARP table parsing
- ✅ MAC vendor identification (40+ manufacturers)
- ✅ Port scanning (TCP/UDP)
- ✅ Service detection (40+ common ports)
- ✅ Two scan strategies (Quick & Deep)
### 🚧 Planned (Phase 2+)
- Real-time latency, jitter, and packet loss monitoring
- Advanced diagnostics (traceroute, MTU discovery, bandwidth test)
- Modern Qt6 GUI with dark/light themes
- Export to CSV/JSON/XML/HTML
- Historical data tracking
- Network topology visualization
## Technology Stack
- **Framework**: Qt 6.x (Widgets, Network, Charts)
- **Language**: C++ 17
- **Build System**: CMake
- **Architecture**: SRP-compliant with MVVM pattern
- **Testing**: Qt Test framework
## Build Instructions
### Prerequisites
- Qt 6.2 or higher
- CMake 3.16 or higher
- C++17 compatible compiler (MSVC 2019+, GCC 9+, Clang 10+)
### Build Steps
#### Windows (MinGW)
```bash
# Clone repository
git clone https://github.com/paolosereno/LanScan.git
cd LanScan
# Clean build (recommended)
rm -rf build && mkdir build && cd build
# Configure with MinGW
cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_PREFIX_PATH="C:/Qt/6.9.1/mingw_64" ..
# Build with 12 cores
cmake --build . -j12
# Run tests
ctest --output-on-failure
# Run application
./LanScan.exe
```
#### Windows (MSVC)
```bash
# Configure with MSVC
cmake -G "Visual Studio 17 2022" -A x64 \
-DCMAKE_PREFIX_PATH="C:/Qt/6.9.1/msvc2022_64" ..
# Build Release
cmake --build . --config Release -j12
```
#### Linux
```bash
# Install dependencies
sudo apt-get install qt6-base-dev qt6-charts-dev cmake build-essential
# Configure and build
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Debug ..
cmake --build . -j$(nproc)
# Run tests
ctest --output-on-failure
```
## Development
- See [project.md](project.md) for detailed architecture and development roadmap
- See [TODO.md](TODO.md) for current task list and progress tracking
### Branch Strategy
- `main` - Production releases
- `develop` - Development branch
- `feature/phaseX-description` - Feature branches (X = 0-11)
- `bugfix/description` - Bug fixes
- `hotfix/description` - Critical fixes
### Commit Convention
```
[Phase X] Brief description
Detailed description of changes.
Location: src/path/to/files
```
## Project Status
**Current Phase**: Phase 1 - Network Layer & Discovery ✅ **COMPLETED**
**Next Phase**: Phase 2 - Metrics & Diagnostics Core
**Progress**: 16.7% (2/12 phases complete)
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## Contributors
Paolo - Lead Developer