#!/bin/bash # echo "[$(date '+%Y-%m-%d %H:%M:%S')] Ejecutando actualización de IP..." # Configuración ZONE_ID="e70540b388ab9d20bfe27d9a31cd474b" RECORD_ID="5d05a48c9d76c7767302442fffa096bd" API_TOKEN="9BD-GB7PtGd5pgXTEBxnv3k1eJlJYJoIWx9HgLLs" DOMAIN="ip.xala.dev" # Obtener IP pública actual IP=$(curl -s https://api.ipify.org) # Obtener IP registrada en Cloudflare DNS_IP=$(curl -s -X GET "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records/$RECORD_ID" \ -H "Authorization: Bearer $API_TOKEN" \ -H "Content-Type: application/json" | jq -r '.result.content') # Comparar IPs if [ "$IP" != "$DNS_IP" ]; then echo "La IP cambió: $DNS_IP → $IP. Actualizando en Cloudflare..." curl -s -X PUT "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records/$RECORD_ID" \ -H "Authorization: Bearer $API_TOKEN" \ -H "Content-Type: application/json" \ --data "{\"type\":\"A\",\"name\":\"$DOMAIN\",\"content\":\"$IP\",\"ttl\":120,\"proxied\":true}" | jq # Notificación vía ntfy curl -d "🌎 [$(date '+%Y-%m-%d %H:%M:%S')] IP actualizada: $DNS_IP → $IP" ntfy.xala.dev/alerts fi