From 4311f64bd6f7fbd36730f91dcd9960068dafa956 Mon Sep 17 00:00:00 2001 From: "manuel.maier" Date: Tue, 28 Jul 2026 00:15:51 +0200 Subject: [PATCH] =?UTF-8?q?v2/wg-client-status.sh=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- v2/wg-client-status.sh | 49 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 v2/wg-client-status.sh diff --git a/v2/wg-client-status.sh b/v2/wg-client-status.sh new file mode 100644 index 0000000..3ccdf4f --- /dev/null +++ b/v2/wg-client-status.sh @@ -0,0 +1,49 @@ +#!/bin/bash + +# --- KONFIGURATION --- +URL="https://DEINE-DOMAIN.DE/pfad/zur/status.php" +MY_HOSTNAME=$(hostname) + +NETCLIENT=$(which netclient || echo "/usr/sbin/netclient") +CURL=$(which curl || echo "/usr/bin/curl") + +# --- DOPPEL-CHECK --- +[ ! -x "$NETCLIENT" ] && exit 1 + +# --- LOGIK --- +$NETCLIENT peers | while read -r line; do + + # Spalte 4: Name, Spalte 7: Handshake + CLIENT_RAW=$(echo "$line" | awk -F'|' '{print $4}' | xargs) + HANDSHAKE=$(echo "$line" | awk -F'|' '{print $7}' | xargs) + + # Header und leere Zeilen überspringen + [[ -z "$CLIENT_RAW" ]] && continue + [[ "$CLIENT_RAW" == "HOSTNAME" ]] && continue + + STATUS="false" + + # Online-Logik: "seconds" ODER 1 bis 10 Minuten + if [[ "$HANDSHAKE" == *"seconds"* ]]; then + STATUS="true" + elif [[ "$HANDSHAKE" =~ ^([1-9]|10)\ minute ]]; then + STATUS="true" + fi + + # JSON Payload sauber generieren + JSON_PAYLOAD=$(cat < /dev/null + +done \ No newline at end of file