Files
ddns/ddns.sh

43 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
SCRIPTPATH="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"
DOMAIN="$1"
echo "DOMAIN -------------------> ${DOMAIN}"
LAST_IP_FILE="/tmp/lastIp-${DOMAIN}"
LAST_IP=""
if [ -f "${LAST_IP_FILE}" ]; then
LAST_IP=$(cat ${LAST_IP_FILE})
fi
echo "Last UPDATE-IP -----------> ${LAST_IP}"
WAN_IP=$(${SCRIPTPATH}/easyBoxCtrl.sh wan ip 2>/dev/null)
echo "Current WAN-IP -----------> ${WAN_IP}"
PROBE_DOMAIN="${DOMAIN}"
if [[ "${PROBE_DOMAIN}" == \*.* ]]; then
PROBE_DOMAIN="probe.${PROBE_DOMAIN:2}"
echo "Probe domain is ----------> ${PROBE_DOMAIN}"
fi
DNS_IP=$(dig +short ${PROBE_DOMAIN})
echo "Current DNS-IP -----------> ${DNS_IP}"
if [ "${WAN_IP}" == "${DNS_IP}" ]; then
echo "IPs match - nothing to do."
exit 0
else
if [ "${LAST_IP}" == "${WAN_IP}" ]; then
echo "Last update IP matches WAN-IP - waiting for DNS to propagate changes."
else
echo "IP mismatch - trying to update A-record(s)..."
$SCRIPTPATH/unitedDomainsCtrl.sh ${DOMAIN} ${WAN_IP}
if [ "$?" == "0" ]; then
echo "Save UPDATE_IP."
echo "${WAN_IP}" > ${LAST_IP_FILE}
fi
fi
fi