#!/bin/bash
# status.sh — текущее состояние защиты.
SELF="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"; source "$SELF/../defender.conf"

guard_on=$(iptables -S INPUT 2>/dev/null | grep -c "j $GUARD")
ipset_rule=$(iptables -S INPUT 2>/dev/null | grep -c "match-set $SETNAME")
mon=$(tmux has-session -t "$TMUX_MON" 2>/dev/null && echo ДА || echo нет)
watch=$(tmux has-session -t "$TMUX_WATCH" 2>/dev/null && echo ДА || echo нет)
srv=$(ss -tlnp 2>/dev/null | grep -q ":$PORT" && echo "СЛУШАЕТ" || echo "не слушает")
conns=$(ss -tn "( sport = :$PORT )" 2>/dev/null | grep -c "$PORT")
ct=$(cat /proc/sys/net/netfilter/nf_conntrack_count 2>/dev/null); ctmax=$(cat /proc/sys/net/netfilter/nf_conntrack_max 2>/dev/null)

echo "──────── Supercell.Laser.Defender • статус ────────"
printf "  C#-сервер (%s):   %s   коннектов: %s\n" "$PORT" "$srv" "$conns"
printf "  guard (лимиты):     %s\n" "$([ $guard_on -gt 0 ] && echo ВКЛ || echo ВЫКЛ)"
printf "  ipset kernel-drop:  %s   (%s IP в бане)\n" "$([ $ipset_rule -gt 0 ] && echo ВКЛ || echo ВЫКЛ)" "$(ipset list $SETNAME 2>/dev/null | grep -c '^[0-9]')"
printf "  мониторинг (%s):  %s\n" "$TMUX_MON" "$mon"
printf "  ban-watcher (%s): %s\n" "$TMUX_WATCH" "$watch"
printf "  conntrack:          %s / %s\n" "$ct" "$ctmax"
echo "──────────────────────────────────────────────────"
