Actualizar ip dinamica en CloudFlare

Cuando tienes la necesidad de actualizar tu IP de manera automática puedes usar el siguiente Scrip el cual actualiza la zona en cloudflare, para ello solo debes de cambiar el correo y la zona que quieres actualizar, para poder utilizarlo debes de tener instalado jq,

este scrip ha sido obtenido de https://gist.github.com/Tras2/cba88201b17d765ec065ccbedfb16d9a

#!/bin/bash

# A bash script to update a Cloudflare DNS A record with the external IP of the source machine
# Used to provide DDNS service for my home
# Needs the DNS record pre-creating on Cloudflare

# Proxy - uncomment and provide details if using a proxy
#export https_proxy=http://<proxyuser>:<proxypassword>@<proxyip>:<proxyport>

# Cloudflare zone is the zone which holds the record
zone=emanuelpaxtian.com
# dnsrecord is the A record which will be updated
dnsrecord=www.emanuelpaxtian.com

## Cloudflare authentication details
## keep these private
[email protected]
cloudflare_auth_key=8c55200d6ba53e4dbf8940c575e4ae9a54287


# Get the current external IP address
ip=$(curl -s -X GET https://checkip.amazonaws.com)

echo "Current IP is $ip"

if host $dnsrecord 1.1.1.1 | grep "has address" | grep "$ip"; then
  echo "$dnsrecord is currently set to $ip; no changes needed"
  exit
fi

# if here, the dns record needs updating

# get the zone id for the requested zone
zoneid=$(curl -s -X GET "https://api.cloudflare.com/client/v4/zones?name=$zone&amp;status=active" \
  -H "X-Auth-Email: $cloudflare_auth_email" \
  -H "X-Auth-Key: $cloudflare_auth_key" \
  -H "Content-Type: application/json" | jq -r '{"result"}[] | .[0] | .id')

echo "Zoneid for $zone is $zoneid"

# get the dns record id
dnsrecordid=$(curl -s -X GET "https://api.cloudflare.com/client/v4/zones/$zoneid/dns_records?type=A&amp;name=$dnsrecord" \
  -H "X-Auth-Email: $cloudflare_auth_email" \
  -H "X-Auth-Key: $cloudflare_auth_key" \
  -H "Content-Type: application/json" | jq -r '{"result"}[] | .[0] | .id')

echo "DNSrecordid for $dnsrecord is $dnsrecordid"

# update the record
curl -s -X PUT "https://api.cloudflare.com/client/v4/zones/$zoneid/dns_records/$dnsrecordid" \
  -H "X-Auth-Email: $cloudflare_auth_email" \
  -H "X-Auth-Key: $cloudflare_auth_key" \
  -H "Content-Type: application/json" \
  --data "{\"type\":\"A\",\"name\":\"$dnsrecord\",\"content\":\"$ip\",\"ttl\":1,\"proxied\":false}" | jq


Mi nombre es Emanuel Paxtian, soy Ingeniero en sistemas computacionales, antes de conocer una computadora quería ser ingeniero civil pero eso cambio cuando use una computadora por primera vez.
Me decidí a crear este blog por que para mi sirve como una biblioteca y aparte ayudo a otros que tienen problemas al igual que yo con algunos temas.
Me gusta programar y encontrar nuevos retos día con día me considero autodidacta mi mayor maestro ha sido sin duda el internet ya que aquí puedes encontrar casi todo.