DonDNS - DNS Dinámico Gratis

    Documentación DonDNS

    1 Introducción

    A continuación se detalla el uso de la API de DonDominio para la actualización de zonas DNS de forma dinámica.

    DonDominio te permite actualizar determinados campos de tus zonas DNS con una simple petición GET.

    2 Configuración previa

    2.1 Obtención de la DonDNS Key

    La API Key es una segunda contraseña distinta a la que ya tienes para acceder a tu área de cliente. Es utilizada únicamente para realizar operaciones en tu cuenta desde aplicaciones externas (vía API), como es el caso de DonDNS, que actualiza la IP del dominio (host) deseado.

    Para conseguir tu API Key, entra a tu cuenta de DonDominio. En el menú de tu panel de administración pulsa sobre "Mi Cuenta" (se encuentra junto al botón "Saldo") y luego elige la opción "DonDNS Key". Si aún no habías habilitado tu clave API, aparecerá el texto "API deshabilitada". Será suficiente con pulsar el botón "Generar nueva clave" para activarla y obtener tu API Key.

    Obtención API Key

    2.2 Activación del servicio para el dominio

    Supongamos que dispones del dominio "midominio.com" y quieres que el host "micasa.midominio.com" apunte a tu IP:

    Desde el panel de "Mis dominios" pulsa sobre el plan de alojamiento de tu dominio, ya sea Redirección y párking o algún otro plan (funciona en todos del mismo modo). Una vez en el panel de administración del alojamiento, selecciona la pestaña "Zona DNS". Al principio de la tabla que aparece, encontrarás un recuadro de "Nueva". Elige como tipo "A (Address)", en host escribe "micasa" (o el nombre que quieras usar), y en dirección IP 127.0.0.1 (DonDNS actualizará este campo).

    Para terminar pulsa "Crear" y ya tendrás el servicio configurado y listo para usar desde DonDNS.

    Obtención API Key

    3 Utilización

    3.1 Petición

    La petición debe hacerse por HTTPS (el sistema HTTP será descartado próximamente). En cada petición es necesario especificar el nombre de usuario de DonDominio y su DonDNS Key obtenida mediante el procedimiento anterior.

    Esta petición debe hacerse mediante el método GET, y los parámetros aceptados son los siguientes:

    Parámetros de la petición:

    Nombre Obligatoriedad Valor por defecto Descripción
    user Requerido Nombre de usuario de DonDominio
    apikey Requerido La clave DonDNS obtenida anteriormente
    host Requerido El campo de la Zona DNS que se pretende actualizar
    ip Opcional La dirección desde la que se lanza la petición. La dirección IP que se quiere actualizar
    lang Opcional es El idioma de la respuesta. es o en

    Adicionalmente se puede requerir la respuesta en formato JSON o XML. Este parámetro se especifica en la URL de la petición de la siguiente forma:

    https://dondns.dondominio.com/json/             Para la respuesta JSON
    https://dondns.dondominio.com/xml/              Para la respuesta XML
    https://dondns.dondominio.com/plain/            Para la respuesta en plain text

    Ejemplo de petición:

    Petición:

    GET https://dondns.dondominio.com/json/?user=nombredeusuario&password=apikey&host=casa.midominio.com&ip=108.177.219.9

    3.2 Respuesta JSON

    La respuesta obtenida consta de los siguientes campos:

    Descripción de los campos de respuesta:

    Campo Descripción
    success true si la petición se ha procesado correctamente, false en caso contrario
    version El numero de version de la API
    ts Timestamp del momento de la actualización
    user El nombre de usuario que realiza la petición. Si el nombre de usuario es desconocido, este campo no aparece
    messages Listado de mensajes, este campo no aparece en todas las respuestas
    host El objeto que se ha actualizado. Cada host se compone de los campos explicados en la siguiente tabla

    Cada host se compone de la siguiente forma:

    Descripción de los campos de respuesta:

    Campo Descripción
    name Campo de la tabla DNS actualizado.
    value La IP que tiene ese campo de la Zona DNS
    type Tipo de registro de la tabla DNS
    updated Si el valor de ese campo ha cambiado o no.

    Ejemplo de respuesta a una petición correcta:

    Ejemplo de respuesta:

    {
        "success": true,
        "version": "2.0",
        "ts": "2016-01-21T16:06:51+01:00",
        "user": "nombredeusuario",
        "host": {
          "name": "casa.midominio.com",
          "value": "108.177.219.9",
          "type": "A",
          "updated": true
        },
        "messages": ["Operation done correctly."]
        }
    }

    3.3 Respuesta XML

    La respuesta obtenida consta de los siguientes elementos:

    Descripción de los campos de respuesta:

    Campo Descripción
    data Elemento raíz. Contiene al resto de elementos. Se muestra siempre.
    resData Subelemento de data. Se muestra siempre que el usuario y la apikey sean correctos.
    host Subelemento de data. Se muestra siempre que el host sea correcto.
    informs Subelemento de data. Se muestra siempre que el resultado de la operación sea positivo.
    errors Subelemento de data. Se muestra si se producen errores de cualquier tipo.

    Atributos de data:

    Campo Descripción
    success true si la petición se ha procesado correctamente, false en caso contrario
    version El numero de version de la API
    oper El nombre de la operación a realizar.

    Elementos de resData:

    Campo Descripción
    user Contiene el nombre de usuario sobre el que se hace la petición. Tiene el atributo t, un timestamp de la petición.
    request No contiene valor, pero contiene el atributo success, que devolverá true si el host ha cambiado de IP.

    Elementos de host:

    Campo Descripción
    type Es un atributo de host. Tipo de registro de la tabla DNS.
    name Campo de la tabla DNS actualizado.
    value La IP que tiene ese campo de la Zona DNS

    Elementos de informs:

    Campo Descripción
    inform Puede haber más de uno. Contiene un string con información sobre el host actualizado.

    Elementos de errors:

    Campo Descripción
    error Puede haber más de uno. Contiene un string con información sobre los errores producidos.

    Ejemplo de respuesta a una petición correcta:

    Ejemplo de respuesta:

    <?xml version="1.0" encoding="UTF-8"?>
    <data oper="dynamicip" succces="0" version="2.0">
      <informs>
        <inform>
          <![CDATA[ Operación realizada correctamente. ]]>
        </inform>
      </informs>
      <resData>
        <user t="2016-01-26T09:46:11+01:00">nombredeusuario</user>
        <request success="1"/>
      </resData>
      <host type="A">
        <name>casa.midominio.com"</name>
        <value>108.177.219.9</value>
      </host>
    </data>

    3.4 Respuesta PlainText

    La respuesta plain text es mucho más sencilla. Si la petición se ha procesado correctamente la primera línea de la respuesta contendrá un OK.

    Ejemplo de respuesta:

    OK

    Si la IP del host ha cambiado, la segunda línea será la nueva IP del host. Si no ha cambiado, no habrá segunda línea.

    Ejemplo de respuesta:

    OK
    UPDATE: 199.199.199.199

    En caso que la petición produzca errores, la primera línea de la respuesta será ERROR, y las líneas sucesivas serán los mensajes de error producidos.

    Ejemplo de respuesta:

    ERROR
    Mesaje de error 1
    Mesaje de error 2