#!/bin/bash

# --- 配置区域 ---
# 日志文件路径
LOG_FILE="atlas-check_ip.log"

# 公网 IP 数组
HOSTS=(
    "124.158.103.155"
    "124.158.103.156"
    "124.158.103.157"
    "124.158.103.2"
    "124.158.103.3"
    "124.158.103.4"
    "124.158.103.5"
    "124.158.103.13"
    "124.158.103.14"
    "124.158.103.16"
)
# ----------------

# 记录开始时间分割线 (同时打印到屏幕和文件)
echo "===============================================" | tee -a "$LOG_FILE"
echo "开始检测 SSH (端口 10022) - $(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" 10022 &> /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"
