|
All checks were successful
Build APK / build-apk (push) Successful in 1m49s
IP-Test: USB-RJ45-Adapter in Netzwerkdose stecken und sofort IP-Adresse, DHCP-Server, Gateway und Link-Geschwindigkeit (10/100/1000 Mbit) ablesen. Auto-Refresh alle 2 s, Speichern mit optionalem Raum/Dose-Name ins Protokoll. WLAN-Empfangstracker: Netz auswählen und beim Durchgehen live RSSI verfolgen. Hybrid-Modus: 500 ms Polling bei verbundenem Netz (kein Scan-Throttling), ~30 s Scan-Sweep bei Fremd-BSSID. Sessions mit Samples, Min/Max/Avg und Sparkline-Verlauf werden im Protokoll gespeichert. Ersetzt DHCP-Info-Tool und WLAN-Scan-Tool (eigene Routen /iptest/ + /wifi/). Kotlin-Plugin: linkInfo(), startWifiScan(), startWifiTrack/stop/status(). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| MonitorService.kt | ||
| 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.