netdiag-app/src/lib/tools/netzwerk/dhcpcheck.ts
Eduard Wisch bf01b4cd21
Some checks failed
Build APK / build-apk (push) Failing after 11m29s
Initiales Commit — NetDiag App vollständig implementiert [apk]
SvelteKit + Capacitor 6 Netzwerk-Diagnose-App:
- Tool-Plattform (IP-Scan, Port, Ping, WLAN, DHCP, SNMP, Traceroute, Stresstest, iperf)
- Offline-First SQLite-Cache + idempotenter Dolibarr-Sync
- Natives Kotlin-Plugin NetDiagScanner (ARP, Ping, Ports, WLAN, DHCP, SNMP, Traceroute)
- Backbutton-Single-Instance-Modul, Auto-Updater, Toast-System
- Auftrags-/Kunden-Übersicht nach Baustellen-App-Muster
- CI: [apk]-Tag → Forgejo Runner → Package Registry netdiag-apk

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-19 12:01:56 +02:00

35 lines
1.1 KiB
TypeScript

/**
* Tool: DHCP-Check — erkennt antwortende DHCP-Server.
* Mehr als ein Server deutet auf einen Rogue-DHCP hin (Warnung).
*/
import { scanner } from '../../scanner';
import type { MeasureStatus, Tool } from '../types';
export const dhcpCheckTool: Tool = {
id: 'dhcpcheck',
category: 'netzwerk',
name: 'DHCP-Check',
icon: 'server',
description: 'Findet DHCP-Server — erkennt unerwünschte Zweit-Server.',
scope: 'protocol',
params: [],
async run() {
const { servers } = await scanner.dhcpDiscover();
let status: MeasureStatus = 0;
if (servers.length === 0) status = 2; // kein DHCP-Server
if (servers.length > 1) status = 2; // Rogue-DHCP
return {
label:
servers.length === 1
? `1 DHCP-Server: ${servers[0].ip}`
: `${servers.length} DHCP-Server (!)`,
result: {
count: servers.length,
server: servers.map((s) => `${s.ip}${s.mac ? ' / ' + s.mac : ''}`),
hinweis: servers.length > 1 ? 'Mehrere DHCP-Server — Rogue-DHCP prüfen!' : '',
},
measureStatus: status,
};
},
};