Files
CoM-ghost_protocol/opsec/scripts/opsec-banner-cache.sh
T

36 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
# /usr/local/bin/opsec-banner-cache.sh — Background WAN IP Cache Updater
# Updates /var/cache/opsec/wan_ip every 5 minutes (via cron)
# Never blocks shell startup — the banner reads from cache only
CACHE_DIR="/var/cache/opsec"
CACHE_FILE="${CACHE_DIR}/wan_ip"
ENDPOINTS="https://icanhazip.com https://ifconfig.me https://api.ipify.org"
mkdir -p "$CACHE_DIR"
chmod 755 "$CACHE_DIR"
PUB_IP=""
# Try via Tor first if running
if pgrep -x tor >/dev/null 2>&1 && ss -tln 2>/dev/null | grep -q ':9050 '; then
for ep in $ENDPOINTS; do
PUB_IP=$(curl -s --max-time 10 --socks5-hostname 127.0.0.1:9050 "$ep" 2>/dev/null | tr -d '[:space:]')
[ -n "$PUB_IP" ] && break
done
fi
# Fallback to direct if Tor failed or not running
if [ -z "$PUB_IP" ]; then
for ep in $ENDPOINTS; do
PUB_IP=$(curl -s --max-time 5 "$ep" 2>/dev/null | tr -d '[:space:]')
[ -n "$PUB_IP" ] && break
done
fi
# Only write if we got a valid-looking IP
if echo "$PUB_IP" | grep -qE '^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$'; then
echo "$PUB_IP" > "$CACHE_FILE"
chmod 644 "$CACHE_FILE"
fi