|
All checks were successful
Build APK / build-apk (push) Successful in 1m41s
- IP-Scanner: ConnectivityManager.getLinkProperties statt hartcodiertem /24 – erkennt jetzt das echte Subnetz inkl. Prefix-Länge und Gateway - DHCP: dhcpDiscover durch dhcpInfo ersetzt (liest WifiManager.dhcpInfo, kein Root nötig) – zeigt Server, Gateway, Lease-Zeit, DNS - Aufträge: tms-Feld ergänzt, Order by tms DESC – "zuletzt bearbeitet" zuerst; Checkbox-Logik invertiert (Standard: alle Aufträge, Haken = nur aktive) - MeasurementResult-Komponente: Arrays (WLAN-Netze, Traceroute-Hops) als echte Liste statt Komma-String; Skalare kompakt in einer Zeile - Traceroute: 5 aufeinanderfolgende Timeouts → Abbruch statt endlos warten - tools/types.ts: MeasureStatus exportiert (behebt 5 Svelte-Check-Fehler) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| NetDiagScannerPlugin.kt | ||
| README.md | ||
| Snmp.kt | ||
Natives Scan-Plugin NetDiagScanner
Der WebView kann keine Raw-Sockets/ICMP/ARP — die eigentliche Netzwerk-Messung läuft in diesem nativen Android-Plugin (Kotlin).
Dateien
NetDiagScannerPlugin.kt— Capacitor-Plugin mit allen Scan-MethodenSnmp.kt— minimaler SNMP-v2c-GET-Client
Integration (einmalig, nach npx cap add android)
-
Android-Projekt erzeugen (falls noch nicht vorhanden):
npm install npm run build npx cap add android -
Plugin-Dateien kopieren nach:
android/app/src/main/java/de/data_it_solution/netdiag/ ├── NetDiagScannerPlugin.kt └── Snmp.kt -
Plugin registrieren in
android/app/src/main/java/de/data_it_solution/netdiag/MainActivity.kt:package de.data_it_solution.netdiag import android.os.Bundle import com.getcapacitor.BridgeActivity class MainActivity : BridgeActivity() { override fun onCreate(savedInstanceState: Bundle?) { registerPlugin(NetDiagScannerPlugin::class.java) super.onCreate(savedInstanceState) } } -
Berechtigungen in
android/app/src/main/AndroidManifest.xml(innerhalb<manifest>):<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />ACCESS_FINE_LOCATIONist Pflicht, damit Android WLAN-Scan-Ergebnisse liefert. -
Kotlin-Coroutines sicherstellen — in
android/app/build.gradle:dependencies { implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.8.0" }
Bekannte Einschränkungen
- ARP/MAC:
/proc/net/arpist ab Android 10 teils nicht mehr lesbar — dann bleiben MAC/Hersteller leer; Geräte werden trotzdem über Ping/Hostname erkannt. - Hersteller-Lookup: nur kleiner OUI-Auszug eingebaut. Für volle Abdeckung
die IEEE-OUI-Datei als Asset einbinden und in
ouiVendor()nutzen. - DHCP-Discover: Best-effort — Port 68 kann vom System-DHCP-Client belegt sein.
- Durchsatz-Test: benötigt eine TCP-Sink/Source-Gegenstelle (2. Gerät bzw. iperf3-kompatibler Server). Misst sonst nur Fehlversuche.
- Stresstest: für lange Läufe sollte ein Foreground-Service ergänzt werden, sonst kann Android den Prozess im Hintergrund beenden.
- PoE-/Strommessung: bewusst nicht enthalten (Hardware-Grenze) — späteres Modul.