DNS Dinámico a un Dominio

Existe una forma Sucia, pesima pero funcional de hacer un DynDNS o un DNS Dinámico a un dominio y esto es a través de godaddy cómo funciona:

Mediante un script desarrollado en shell es posible que a través de un cron se ejecute cada X tiempo, este Script acudira a una pagina externa verifica tu ip externa y posteriormente lanza una consulta a godaddy para verificar que la ip publicada en el host indicado sea diferente a la actual, de ser así el script cambia la ip del cliente logrando de este modo tener un subdominio con una ip publica.

El Script es el siguiente:

#!/bin/bash

# First go to GoDaddy developer site to create a developer account and get your key and secret
#
# https://developer.godaddy.com/getstarted
# Be aware that there are 2 types of key and secret - one for the test server and one for the production server
# Get a key and secret for the production server
#
#Update the first 4 variables with your information

domain=""   # your domain
name=""     # name of A record to update
key=""      # key for godaddy developer API
secret=""   # secret for godaddy developer API

headers="Authorization: sso-key $key:$secret"

# echo $headers

result=$(curl -s -X GET -H "$headers" \
 "https://api.godaddy.com/v1/domains/$domain/records/A/$name")
#echo "Result" $result
dnsIp=$(echo $result | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b")
#echo "dnsIp:" $dnsIp

# Get public ip address there are several websites that can do this.
ret=$(curl -s GET "http://ipinfo.io/json")
currentIp=$(echo $ret | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b")
#echo "currentIp:" $currentIp

 if [ $dnsIp != $currentIp ];
 then
#        echo "Ips are not equal"
        request='{"data":"'$currentIp'","ttl":3600}'
#       echo $request
        nresult=$(curl -i -s -X PUT \
 -H "$headers" \
 -H "Content-Type: application/json" \
 -d $request "https://api.godaddy.com/v1/domains/$domain/records/A/$name")
#        echo $nresult
fi

Espero sea de utilidad, deja tus comentarios para saber como te funciono.