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