Skip to content

Instantly share code, notes, and snippets.

@LuisPalacios
Last active April 30, 2023 15:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save LuisPalacios/a3ce16ea1ad60064849cd08c11b284e0 to your computer and use it in GitHub Desktop.
Save LuisPalacios/a3ce16ea1ad60064849cd08c11b284e0 to your computer and use it in GitHub Desktop.
Ejecutar API de actualización de IP del DNS gratis dinámico
#!/bin/bash
#
# Fichero /usr/bin/cdmon_update.sh
#
# Este servicio ejecuta el script para consumir
# el API de actualización de IP del DNS gratis dinámico
# de mi proveedor de dominios CDMON.
#
# Documento un caso de uso en este apunte:
# https://www.luispa.com/administración/2023/04/08/networking-avanzado.html
#
# USUARIO Nombre de usuario para entrar
# PASSMD5 Contraseña encriptada con algoritmo MD5.
# HOST Dominio/subdominio que se desea actualizar
#
USUARIO=MiUsuarioEnMiProveedor
PASSMD5=12345678901234567890123456789012
HOST=mihass.tudominio.com
# Me quedo esperando a tener internet !
while ! ping -c 1 8.8.8.8 >/dev/null 2>&1; do sleep 1; done;
# Averiguar que IP está ahora mismo configurada en CDMON
IP_EN_DNS=$(host ${HOST} dinamic1.cdmon.net | grep -m1 ${HOST} | awk '{print $4}')
# Averiguar con qué IP pública llego a internet (qué ip tengo ahora mismo en este sistema)
GET_IP="https://dinamico.cdmon.org/onlineService.php?enctype=MD5&n=$USUARIO&p=$PASSMD5"
IP_ACTUAL=`wget --no-check-certificate $GET_IP -o /dev/null -q -O /dev/stdout | cut -f2 -d\& | cut -f2 -d=`
# Si son distintas se pide el cambio y se notifica
if [ "${IP_EN_DNS}" != "${IP_ACTUAL}" ]; then
CHANGE_IP="https://dinamico.cdmon.org/onlineService.php?enctype=MD5&n=$USUARIO&p=$PASSMD5&cip=$IP_ACTUAL"
wget $CHANGE_IP -o /dev/null -O /dev/null --no-check-certificate
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment