595d73a41da60627315b418f179d67b1f62f7136
Argus
A network reconnaissance and monitoring tool built with Rust and Tauri. Combines the functionality of Angry IP Scanner, Advanced IP Scanner, Ping Info View, and Nmap into a single desktop application with a cyber/NOC-themed UI.
Named after Argus Panoptes, the hundred-eyed giant of Greek mythology.
Features
Scanner
- ICMP ping sweep with unprivileged sockets (no root/admin required)
- IP range input supporting CIDR, start-end ranges, comma-separated, and mixed formats
- Reverse DNS hostname resolution
- TCP connect port scanning with configurable port lists
- Service banner grabbing (SSH, FTP, SMTP, HTTP)
- NetBIOS name and workgroup resolution
- Sortable, filterable, real-time results table
- Host detail panel with full port breakdown
- Export to CSV (all hosts or Up-only)
- Column show/hide preferences (persisted)
- Row checkboxes with select-all for batch operations
Nmap Integration
- Shell out to system nmap with scan presets (Quick, Service Detection, OS Detection, Full)
- Custom argument support
- Real-time streaming output with color-coded lines
- Verbose mode toggle
- Start/stop control
Continuous Ping Monitor
- Multi-host ping monitoring with configurable intervals (1s to 30s)
- Per-host statistics: min/avg/max latency, packet loss, consecutive failures
- Status detection: Up, Down, Degraded
- State change event logging
- Add hosts manually or import from scan results
Cross-tab Workflow
- Send scan results to Monitor or Nmap tabs (all hosts, Up-only, or checked)
- Right-click context menu: copy IP/hostname, open HTTP/HTTPS, traceroute, send to other tabs
- Each tab has independent manual input
Other
- Traceroute via system tracepath (Linux) or tracert (Windows), no privileges required
- Privilege detection indicator in status bar
- Auto-update check against Gitea/GitHub releases API
- Dark cyber/NOC theme with circuit board art and glow effects
Requirements
- Rust (stable, 2021 edition)
- Tauri v2 system dependencies
- Linux:
webkit2gtk-4.1,libappindicator3-dev,librsvg2-dev, and related libs - Windows: WebView2 runtime (included in Windows 10/11)
- Linux:
- nmap (optional, for Nmap tab functionality)
- tracepath or traceroute (optional, for traceroute feature; tracepath is usually pre-installed on Linux)
Building
# Development
cargo tauri dev
# Production build
cargo tauri build
# Cross Compiling Windows on Linux
cargo tauri build --runner cargo-xwin --target x86_64-pc-windows-msvc
Privileges
The core scanning workflow runs without elevation on all platforms:
- Linux: Uses unprivileged ICMP datagram sockets (kernel 2.6.30+). Requires user's GID within
net.ipv4.ping_group_range. - Windows: Uses Win32
IcmpSendEcho2ExAPI. No administrator rights required.
Running as root/admin enables additional nmap scan types (OS detection with -O, SYN scanning with -sS).
Tech Stack
| Layer | Technology |
|---|---|
| Framework | Tauri 2 |
| Backend | Rust |
| Frontend | Vanilla JavaScript |
| Async | Tokio |
| ICMP | ping-async |
| DNS | dns-lookup |
Project Structure
argus/
├── src-tauri/
│ └── src/
│ ├── commands/ # Tauri IPC command handlers
│ │ ├── actions.rs # URL launch, privilege check
│ │ ├── export.rs # CSV export
│ │ ├── monitor.rs # Continuous ping monitor
│ │ ├── nmap.rs # Nmap subprocess integration
│ │ ├── scan.rs # Ping sweep orchestration
│ │ ├── traceroute.rs
│ │ └── updater.rs # Version check against git releases
│ ├── models/ # Data structures
│ │ ├── host.rs # HostResult, PortResult, NetbiosInfo
│ │ └── monitor.rs # MonitorEntry, MonitorStatus
│ ├── net/ # Network utilities
│ │ ├── dns.rs # Reverse DNS resolution
│ │ └── range.rs # IP range parsing
│ └── scanner/ # Scanning engines
│ ├── netbios.rs # NetBIOS NBSTAT queries
│ ├── ping.rs # ICMP ping sweep
│ └── port.rs # TCP port scanning + banner grab
├── src/
│ ├── index.html # App layout
│ ├── styles.css # Cyber/NOC dark theme
│ └── main.js # All frontend logic
└── README.md
License
This project is licensed under the GNU Affero General Public License v3.0. See LICENSE for details.
Releases
6
Frozen Sound
Latest
Languages
Rust
33.9%
JavaScript
30.1%
CSS
27.2%
HTML
8.7%
Shell
0.1%