监控到期域名脚本

tempuser  (UID: 5067) [复制链接]
帖子链接已复制到剪贴板
帖子已经有人评论啦,不支持删除!

870 16
#!/usr/bin/env bash

DOMAIN=""
TLD=""
RDAP_URL="https://rdap.centralnic.com/${TLD}/domain/${DOMAIN}"
INTERVAL=30
LOG_DIR="./rdap_logs"
LAST_FILE="${LOG_DIR}/last.json"
BOT_TOKEN=""
CHAT_ID=""

mkdir -p "$LOG_DIR"

echo "[*] RDAP Monitor started for $DOMAIN"
echo "[*] Interval: ${INTERVAL}s"
echo "[*] Source: $RDAP_URL"
echo

while true; do
    TS=$(date -u +"%Y-%m-%d %H:%M:%S UTC")
    TMP_FILE="${LOG_DIR}/rdap_$(date -u +%Y%m%d_%H%M%S).json"


    HTTP_CODE=$(curl -s -w "%{http_code}" \
        -H "Accept: application/rdap+json" \
        -o "$TMP_FILE" \
        "$RDAP_URL")

    if [ "$HTTP_CODE" != "200" ]; then
        echo "[$TS] HTTP ERROR: $HTTP_CODE"
        sleep "$INTERVAL"
        continue
    fi


    STATUS=$(jq -r '.status[]?' "$TMP_FILE" | tr '\n' ',' | sed 's/,$//')
    LAST_CHANGED=$(jq -r '.events[]? | select(.eventAction=="last changed") | .eventDate' "$TMP_FILE")
    LAST_UPDATE=$(jq -r '.events[]? | select(.eventAction=="last update of RDAP database") | .eventDate' "$TMP_FILE")
    REGISTRAR=$(jq -r '.entities[]? | select(.roles[]?=="registrar") | .vcardArray[1][1][3]' "$TMP_FILE")
    NS=$(jq -r '.nameservers[]?.ldhName' "$TMP_FILE" | tr '\n' ',' | sed 's/,$//')

    echo "[$TS]"
    echo "  Status      : $STATUS"
    echo "  Registrar   : $REGISTRAR"
    echo "  Nameservers : $NS"
    echo "  LastChanged : $LAST_CHANGED"
    echo "  RDAPUpdate  : $LAST_UPDATE"
    echo


    NORM_TMP="${TMP_FILE}.norm"
    NORM_LAST="${LAST_FILE}.norm"


    jq -S '(.events |= (map(select(.eventAction != "last update of RDAP database")) // .))' \
        "$TMP_FILE" > "$NORM_TMP"


    if [ -f "$NORM_LAST" ]; then
        if ! diff -q "$NORM_LAST" "$NORM_TMP" >/dev/null; then
            echo "⚠️  [$TS] RDAP DATA CHANGED (excluding RDAPUpdate)!"
            echo "----------------------------------"
            diff "$NORM_LAST" "$NORM_TMP" | head -n 80
            echo "----------------------------------"

            msg="[$TS] 🚨 RDAP DATA CHANGED!
Domain: $DOMAIN
Status: $STATUS
Registrar: $REGISTRAR
Nameservers: $NS
LastChanged: $LAST_CHANGED
RDAPUpdate: $LAST_UPDATE"

            echo "发送通知: $msg" >> /root/signer/rdap.log

            curl -s -X POST "https://api.telegram.org/bot${BOT_TOKEN}/sendMessage" \
                --data-urlencode "chat_id=${CHAT_ID}" \
                --data-urlencode "text=${msg}" \
                >/dev/null
        fi
    fi


    cp "$TMP_FILE" "$LAST_FILE"
    cp "$NORM_TMP" "$NORM_LAST"

    sleep "$INTERVAL"
done
这家伙太懒了,什么也没留下。
已有评论 ( 16 )
提示:您必须 登录 才能查看此内容。
域名市场
   域名载入中...
创建新帖
自助推广 (点击空位或 这里 添加)
确认删除
确定要删除这篇帖子吗?删除后将无法恢复。
删除成功
帖子已成功删除,页面将自动刷新。
删除失败
删除帖子时发生错误,请稍后再试。