mcsmartscan.utils
Pure functions that normalise inputs and feed work into the scanner.
ip_range_generator expands IPv4 ranges and CIDR blocks safely.
permuted_index_generator provides deterministic, collision-free shuffling.
- Helpers like
ip_range_size support progress calculations.
mcsmartscan.proxy
Home of ProxyPool plus custom exceptions for proxy health.
- Tracks success, failure, and cooldown windows per endpoint.
- Raises
ProxyAcquireTimeout or ProxyTargetError when providers misbehave.
- Integrates with Mullvad or custom VPN managers via callbacks.
mcsmartscan.vpn
Optional layer that automates Mullvad exit rotation.
- Validates the Mullvad CLI/API is available before scheduling rotations.
- Coordinates timing so proxy health checks and VPN swaps do not collide.
- Safe to ignore—if not configured, the scanner defaults to static egress.
mcsmartscan.storage
StorageManager centralises persistence logic and path handling.
- Auto-detects the Desktop path across Windows, macOS, and Linux.
- Writes plain-text leads plus structured JSON for GUI state restoration.
- Ensures directories exist before writing, reducing runtime surprises.
app.py
The orchestration hub that wires it all together.
- Initialises GUI widgets, binds event handlers, and schedules periodic tasks.
- Bootstraps console execution when
--nogui is set or Tkinter is unavailable.
- Exposes extension hooks such as
run_console_scan(app) so advanced users can plug in custom loops.