#!/bin/bash

# --- 配置区域 ---
# 日志文件路径
LOG_FILE="ks-vpn-monitor.log"

# 监控端口
PORT=22

# 公网 IP 数组
HOSTS=(
    "210.59.195.162"
    "210.59.195.163"
    "60.198.31.145"
    "60.198.31.146"
)
# ----------------

# 记录开始时间分割线 (同时打印到屏幕和文件)
echo "===============================================" | tee -a "$LOG_FILE"
echo "开始检测 VPN/SSH (端口 ${PORT}) - $(date '+%Y-%m-%d %H:%M:%S')" | tee -a "$LOG_FILE"
echo "-----------------------------------------------" | tee -a "$LOG_FILE"

for IP in "${HOSTS[@]}"; do
    # 获取当前时间
    CURRENT_TIME=$(date "+%Y-%m-%d %H:%M:%S")
    
    # -z: 扫描模式
    # -w 2: 超时时间 2 秒
    nc -z -w 2 "$IP" "$PORT" &> /dev/null
    
    # 判断结果
    if [ $? -eq 0 ]; then
        # 构造成功信息 (绿色)
        MSG="${CURRENT_TIME} : ${IP} \t: \033[32m通 (Open)\033[0m"
    else
        # 构造失败信息 (红色)
        MSG="${CURRENT_TIME} : ${IP} \t: \033[31m不通 (Closed/Timeout)\033[0m"
    fi

    # 核心：使用 tee -a 追加到日志，同时 echo -e 解析颜色输出到屏幕
    # 注意：日志文件中也会包含颜色代码，使用 cat 查看日志时会有颜色，用记事本看会有乱码
    echo -e "$MSG" | tee -a "$LOG_FILE"

done

echo "-----------------------------------------------" | tee -a "$LOG_FILE"
echo "检测完成，结果已保存至 $LOG_FILE"
