Fixed updater
This commit is contained in:
@@ -1,7 +1,119 @@
|
||||
# Tauri + Vanilla
|
||||
# Argus
|
||||
|
||||
This template should help get you started developing with Tauri in vanilla HTML, CSS and Javascript.
|
||||
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.
|
||||
|
||||
## Recommended IDE Setup
|
||||
Named after Argus Panoptes, the hundred-eyed giant of Greek mythology.
|
||||
|
||||
- [VS Code](https://code.visualstudio.com/) + [Tauri](https://marketplace.visualstudio.com/items?itemName=tauri-apps.tauri-vscode) + [rust-analyzer](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer)
|
||||
## 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)
|
||||
- **nmap** (optional, for Nmap tab functionality)
|
||||
- **tracepath** or **traceroute** (optional, for traceroute feature; tracepath is usually pre-installed on Linux)
|
||||
|
||||
## Building
|
||||
|
||||
```bash
|
||||
# Development
|
||||
cargo tauri dev
|
||||
|
||||
# Production build
|
||||
cargo tauri build
|
||||
```
|
||||
|
||||
## 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 `IcmpSendEcho2Ex` API. 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](LICENSE) for details.
|
||||
|
||||
Reference in New Issue
Block a user