wraith/src/components/tools/ToolWindow.vue
Vantz Stockwell b3f56a2729
Some checks failed
Build & Sign Wraith / Build Windows + Sign (push) Failing after 7s
feat: Tools R2 — DNS, Whois, Bandwidth, Subnet Calculator
4 new tools with full backend + popup UIs:

DNS Lookup:
- dig/nslookup/host fallback chain on remote host
- Record type selector (A, AAAA, MX, NS, TXT, CNAME, SOA, SRV, PTR)

Whois:
- Remote whois query, first 80 lines
- Works for domains and IP addresses

Bandwidth Test (2 modes):
- iperf3: LAN speed test between remote host and iperf server
- Internet: speedtest-cli / curl-based Cloudflare test fallback

Subnet Calculator:
- Pure Rust, no SSH needed
- CIDR input with quick-select buttons (/8 through /32)
- Displays: network, broadcast, netmask, wildcard, host range,
  total/usable hosts, class, private/public

Tools menu now has 11 items across 3 sections.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 00:12:11 -04:00

38 lines
1.6 KiB
Vue

<template>
<div class="h-screen w-screen flex flex-col bg-[#0d1117] text-[#e0e0e0]">
<NetworkScanner v-if="tool === 'network-scanner'" :session-id="sessionId" />
<PortScanner v-else-if="tool === 'port-scanner'" :session-id="sessionId" />
<PingTool v-else-if="tool === 'ping'" :session-id="sessionId" />
<TracerouteTool v-else-if="tool === 'traceroute'" :session-id="sessionId" />
<WakeOnLan v-else-if="tool === 'wake-on-lan'" :session-id="sessionId" />
<DnsLookup v-else-if="tool === 'dns-lookup'" :session-id="sessionId" />
<WhoisTool v-else-if="tool === 'whois'" :session-id="sessionId" />
<BandwidthTest v-else-if="tool === 'bandwidth'" :session-id="sessionId" />
<SubnetCalc v-else-if="tool === 'subnet-calc'" />
<SshKeyGen v-else-if="tool === 'ssh-keygen'" />
<PasswordGen v-else-if="tool === 'password-gen'" />
<div v-else class="flex-1 flex items-center justify-center text-sm text-[#484f58]">
Unknown tool: {{ tool }}
</div>
</div>
</template>
<script setup lang="ts">
import NetworkScanner from "./NetworkScanner.vue";
import PortScanner from "./PortScanner.vue";
import PingTool from "./PingTool.vue";
import TracerouteTool from "./TracerouteTool.vue";
import WakeOnLan from "./WakeOnLan.vue";
import DnsLookup from "./DnsLookup.vue";
import WhoisTool from "./WhoisTool.vue";
import BandwidthTest from "./BandwidthTest.vue";
import SubnetCalc from "./SubnetCalc.vue";
import SshKeyGen from "./SshKeyGen.vue";
import PasswordGen from "./PasswordGen.vue";
defineProps<{
tool: string;
sessionId: string;
}>();
</script>