mirror of
https://github.com/mykitserver/docker-ddns-ipv64.git
synced 2025-12-06 16:39:06 +01:00
Merge pull request 'v0.1.1' (#7) from development into master
This commit is contained in:
@@ -37,7 +37,7 @@ steps:
|
||||
repo: alcapone1933/ddns-ipv64
|
||||
# tags: latest
|
||||
auto_tag: true
|
||||
auto_tag_suffix: v0.1.0
|
||||
auto_tag_suffix: v0.1.1
|
||||
|
||||
trigger:
|
||||
branch:
|
||||
|
||||
@@ -4,7 +4,7 @@ LABEL maintainer="alcapone1933 <alcapone1933@cosanostra-cloud.de>" \
|
||||
org.opencontainers.image.created="$(date +%Y-%m-%d\ %H:%M)" \
|
||||
org.opencontainers.image.authors="alcapone1933 <alcapone1933@cosanostra-cloud.de>" \
|
||||
org.opencontainers.image.url="https://hub.docker.com/r/alcapone1933/ddns-ipv64" \
|
||||
org.opencontainers.image.version="v0.1.0" \
|
||||
org.opencontainers.image.version="v0.1.1" \
|
||||
org.opencontainers.image.ref.name="alcapone1933/ddns-ipv64" \
|
||||
org.opencontainers.image.title="DDNS Updater ipv64.net" \
|
||||
org.opencontainers.image.description="Community DDNS Updater fuer ipv64.net"
|
||||
@@ -12,8 +12,8 @@ LABEL maintainer="alcapone1933 <alcapone1933@cosanostra-cloud.de>" \
|
||||
ENV TZ=Europe/Berlin \
|
||||
CRON_TIME="*/15 * * * *" \
|
||||
CRON_TIME_DIG="*/30 * * * *" \
|
||||
VERSION="v0.1.0" \
|
||||
CURL_USER_AGENT="docker-ddns-ipv64/version=$VERSION github.com/alcapone1933/docker-ddns-ipv64" \
|
||||
VERSION="v0.1.1" \
|
||||
CURL_USER_AGENT="docker-ddns-ipv64/version=v0.1.1 github.com/alcapone1933/docker-ddns-ipv64" \
|
||||
SHOUTRRR_URL=""
|
||||
|
||||
RUN apk add --update --no-cache tzdata curl bash tini bind-tools jq && \
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Cronjob DDNS Updater ipv64.net
|
||||
*/15 * * * * /bin/bash /data/ddns-update.sh >> /var/log/cron.log 2>&1
|
||||
*/30 * * * * sleep 20 && /bin/bash /data/domain-ip-scheck.sh >> /var/log/cron.log 2>&1
|
||||
# */15 * * * * /bin/bash /data/ddns-update.sh >> /var/log/cron.log 2>&1
|
||||
# */30 * * * * sleep 20 && /bin/bash /data/domain-ip-scheck.sh >> /var/log/cron.log 2>&1
|
||||
# */30 * * * * sleep 20 && echo "`date +%Y-%m-%d\ %H:%M:%S` IP CHECK - Deine DOMAIN ${DOMAIN_IPV64} HAT DIE IP=`dig +short ${DOMAIN_IPV64} A @ns1.ipv64.net`" >> /var/log/cron.log 2>&1
|
||||
# */30 * * * * sleep 20 && for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do echo "`date +%Y-%m-%d\ %H:%M:%S` IP CHECK - Deine DOMAIN ${DOMAIN} HAT DIE IP=`dig +short ${DOMAIN} A @ns1.ipv64.net`" >> /var/log/cron.log 2>&1; done
|
||||
# */30 * * * * sleep 20 && for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do echo "`date +%Y-%m-%d\ %H:%M:%S` IP CHECK - Deine DOMAIN mit PRAEFIX ${DOMAIN_PRAEFIX}.${DOMAIN} HAT DIE IP=`dig +short ${DOMAIN_PRAEFIX}.${DOMAIN} A @ns1.ipv64.net`" >> /var/log/cron.log 2>&1; done
|
||||
|
||||
@@ -1,17 +1,43 @@
|
||||
#!/usr/bin/env bash
|
||||
PFAD="/data"
|
||||
DATUM=$(date +%Y-%m-%d\ %H:%M:%S)
|
||||
set -e
|
||||
# set -e
|
||||
if ! curl -4sf --user-agent "${CURL_USER_AGENT}" "https://ipv64.net" 2>&1 > /dev/null; then
|
||||
echo "$DATUM FEHLER !!! - 404 Sie haben kein Netzwerk oder Internetzugang oder die Webseite ipv64.net ist nicht erreichbar"
|
||||
STATUS="OK"
|
||||
NAMESERVER_CHECK=$(dig +timeout=1 @ns1.ipv64.net 2> /dev/null)
|
||||
echo "$NAMESERVER_CHECK" | grep -s -q "timed out" && { NAMESERVER_CHECK="Timeout" ; STATUS="FAIL" ; }
|
||||
if [ "${STATUS}" = "FAIL" ] ; then
|
||||
echo "$DATUM FEHLER !!! - 404 NAMESERVER ns1.ipv64.net ist nicht ist nicht erreichbar. Sie haben kein Netzwerk oder Internetzugang"
|
||||
echo "=============================================================================================="
|
||||
fi
|
||||
if ! curl -4sf "https://google.net" 2>&1 > /dev/null; then
|
||||
echo "$DATUM FEHLER !!! - 404 Sie haben kein Netzwerk oder Internetzugang oder die Webseite google.de ist nicht erreichbar"
|
||||
echo "=============================================================================================="
|
||||
exit 1
|
||||
fi
|
||||
STATUS="OK"
|
||||
NAMESERVER_CHECK=$(dig +timeout=1 @ns1.ipv64.net 2> /dev/null)
|
||||
echo "$NAMESERVER_CHECK" | grep -s -q "timed out" && { NAMESERVER_CHECK="Timeout" ; STATUS="FAIL" ; }
|
||||
if [ "${STATUS}" = "FAIL" ] ; then
|
||||
echo "$DATUM FEHLER !!! - 404 NAMESERVER ist nicht ist nicht erreichbar. Sie haben kein Netzwerk oder Internetzugang"
|
||||
else
|
||||
IP_INFO=$(curl -4sf "https://ipinfo.io/ip" 2>&1)
|
||||
UPDIP=$(cat $PFAD/updip.txt)
|
||||
echo "$DATUM INFO !!! - Die Webseite google.de ist erreichbar. Ihre Aktuelle IP laut IPINFO.IO=$IP_INFO"
|
||||
if [ "$IP_INFO" = "$UPDIP" ]; then
|
||||
echo > /dev/null
|
||||
else
|
||||
if [ -z "${SHOUTRRR_URL:-}" ] ; then
|
||||
echo > /dev/null
|
||||
else
|
||||
echo "$DATUM SHOUTRRR - SHOUTRRR NACHRICHT wird gesendet"
|
||||
DOMAIN_NOTIFY=$(for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do echo "DOMAIN mit PRAEFIX: ${DOMAIN_PRAEFIX}.${DOMAIN} "; done)
|
||||
if ! /usr/local/bin/shoutrrr send --url "${SHOUTRRR_URL}" --message "`echo -e "$DATUM INFO !!! \n\nIPV64.NET IST NICHT ERREICHBAR \nIHRE Aktuelle IP laut IPINFO.IO=$IP_INFO \n${DOMAIN_NOTIFY}"`" 2> /dev/null; then
|
||||
echo "$DATUM FEHLER !!! - SHOUTRRR NACHRICHT konnte nicht gesendet werden"
|
||||
else
|
||||
echo "$DATUM SHOUTRRR - SHOUTRRR NACHRICHT wurde gesendet"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
echo "$IP_INFO" > $PFAD/updip.txt
|
||||
echo "=============================================================================================="
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
IP=$(curl -4sSL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/update.php?howismyip" | jq -r 'to_entries[] | "\(.value)"')
|
||||
@@ -38,24 +64,30 @@ else
|
||||
echo "$DATUM UPDATE !!! ..."
|
||||
echo "$DATUM UPDATE !!! - Update IP=$IP - Alte-IP=$UPDIP"
|
||||
sleep 1
|
||||
# curl -4sSL "https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&praefix=${DOMAIN_PRAEFIX}&ip=${IP}&output=min"
|
||||
UPDATE_IP=$(curl -4sSL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&praefix=${DOMAIN_PRAEFIX}&ip=${IP}&output=min")
|
||||
# if [ "$UPDATE_IP" = "ok" ] ; then
|
||||
if [[ "$UPDATE_IP" =~ (nochg|good|ok) ]] ; then
|
||||
echo "$DATUM UPDATE !!! - UPDATE IP=$IP WURDE AN IPV64.NET GESENDET"
|
||||
if [ -z "${SHOUTRRR_URL:-}" ] ; then
|
||||
echo > /dev/null
|
||||
else
|
||||
SHOUTRRR_NOTIFY
|
||||
fi
|
||||
echo "$IP" > $PFAD/updip.txt
|
||||
# curl -4sSL "https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&praefix=${DOMAIN_PRAEFIX}&ip=${IP}&output=min"
|
||||
UPDATE_IP=$(curl -4sSL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&praefix=${DOMAIN_PRAEFIX}&ip=${IP}&output=min")
|
||||
# if [ "$UPDATE_IP" = "ok" ] ; then
|
||||
if [[ "$UPDATE_IP" =~ (nochg|good|ok) ]] ; then
|
||||
echo "$DATUM UPDATE !!! - UPDATE IP=$IP WURDE AN IPV64.NET GESENDET"
|
||||
else
|
||||
echo "$DATUM FEHLER !!! - UPDATE IP=$IP WURDE NICHT AN IPV64.NET GESENTET"
|
||||
CHECK_INTERVALL=$(curl -4sSL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&praefix=${DOMAIN_PRAEFIX}&ip=${IP}" | grep -o "Updateintervall")
|
||||
if [ "$CHECK_INTERVALL" == "Updateintervall" ]; then
|
||||
echo "$DATUM FEHLER !!! - Dein DynDNS Update Limit ist wohl erreicht"
|
||||
echo "$DATUM INFO !!! - Es kann erst wieder ein Update gesedet werden wenn dein DynDNS Update Limit im grünen Bereich ist"
|
||||
fi
|
||||
if [ -z "${SHOUTRRR_URL:-}" ] ; then
|
||||
echo > /dev/null
|
||||
else
|
||||
echo "$DATUM SHOUTRRR - SHOUTRRR NACHRICHT wird gesendet"
|
||||
if ! /usr/local/bin/shoutrrr send --url "${SHOUTRRR_URL}" --message "`echo -e "$DATUM FEHLER !!! \nUPDATE IP=$IP WURDE NICHT AN IPV64.NET GESENTET"`" 2> /dev/null; then
|
||||
DOMAIN_NOTIFY=$(for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do echo "DOMAIN mit PRAEFIX: ${DOMAIN_PRAEFIX}.${DOMAIN} "; done)
|
||||
if ! /usr/local/bin/shoutrrr send --url "${SHOUTRRR_URL}" --message "`echo -e "$DATUM INFO !!! \n\nUPDATE IP=$IP WURDE NICHT AN IPV64.NET GESENTET \n${DOMAIN_NOTIFY}"`" 2> /dev/null; then
|
||||
echo "$DATUM FEHLER !!! - SHOUTRRR NACHRICHT konnte nicht gesendet werden"
|
||||
else
|
||||
echo "$DATUM SHOUTRRR - SHOUTRRR NACHRICHT wurde gesendet"
|
||||
@@ -64,6 +96,7 @@ else
|
||||
fi
|
||||
# curl -4sSL https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}praefix=${DOMAIN_PRAEFIX}&ip=<ipaddr>&ip6=<ip6addr>&output=min
|
||||
fi
|
||||
echo "=============================================================================================="
|
||||
sleep 5
|
||||
# Nachpruefung ob der DOMAIN Eintrag richtig gesetzt ist
|
||||
function CHECK_A_DOMAIN() {
|
||||
@@ -82,34 +115,41 @@ else
|
||||
echo "$DATUM UPDATE !!! - NACHEINTRAG DIE IP WIRD NOCH EINMAL GESETZT"
|
||||
echo "$DATUM UPDATE !!! - Update IP=$IP - Alte-IP=$UPDIP"
|
||||
sleep 5
|
||||
# curl -4sSL "https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&praefix=${DOMAIN_PRAEFIX}&ip=${IP}&output=min"
|
||||
UPDATE_IP=$(curl -4sSL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&praefix=${DOMAIN_PRAEFIX}&ip=${IP}&output=min")
|
||||
# if [ "$UPDATE_IP" = "ok" ] ; then
|
||||
if [[ "$UPDATE_IP" =~ (nochg|good|ok) ]] ; then
|
||||
echo "$DATUM UPDATE !!! - UPDATE IP=$IP WURDE AN IPV64.NET GESENDET"
|
||||
if [ -z "${SHOUTRRR_URL:-}" ] ; then
|
||||
echo > /dev/null
|
||||
else
|
||||
SHOUTRRR_NOTIFY
|
||||
fi
|
||||
echo "$IP" > $PFAD/updip.txt
|
||||
# curl -4sSL "https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&praefix=${DOMAIN_PRAEFIX}&ip=${IP}&output=min"
|
||||
UPDATE_IP=$(curl -4sSL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&praefix=${DOMAIN_PRAEFIX}&ip=${IP}&output=min")
|
||||
# if [ "$UPDATE_IP" = "ok" ] ; then
|
||||
if [[ "$UPDATE_IP" =~ (nochg|good|ok) ]] ; then
|
||||
echo "$DATUM UPDATE !!! - UPDATE IP=$IP WURDE AN IPV64.NET GESENDET"
|
||||
# curl -4sSL https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&praefix=${DOMAIN_PRAEFIX}&ip=<ipaddr>&ip6=<ip6addr>&output=min
|
||||
sleep 15
|
||||
# echo "$DATUM NACHEINTRAG - DOMAIN mit PRAEFIX HAT DEN A-RECORD=`dig +noall +answer ${DOMAIN_PRAEFIX}.${DOMAIN_IPV64} A @ns1.ipv64.net`"
|
||||
for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do echo "$DATUM NACHEINTRAG - DOMAIN mit PRAEFIX HAT DEN A-RECORD=`dig +noall +answer ${DOMAIN_PRAEFIX}.${DOMAIN} A @ns1.ipv64.net`"; done
|
||||
else
|
||||
echo "$DATUM FEHLER !!! - UPDATE IP=$IP WURDE NICHT AN IPV64.NET GESENTET"
|
||||
CHECK_INTERVALL=$(curl -4sSL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&praefix=${DOMAIN_PRAEFIX}&ip=${IP}" | grep -o "Updateintervall")
|
||||
if [ "$CHECK_INTERVALL" == "Updateintervall" ]; then
|
||||
echo "$DATUM FEHLER !!! - Dein DynDNS Update Limit ist wohl erreicht"
|
||||
echo "$DATUM INFO !!! - Es kann erst wieder ein Update gesedet werden wenn dein DynDNS Update Limit im grünen Bereich ist"
|
||||
fi
|
||||
if [ -z "${SHOUTRRR_URL:-}" ] ; then
|
||||
echo > /dev/null
|
||||
else
|
||||
echo "$DATUM SHOUTRRR - SHOUTRRR NACHRICHT wird gesendet"
|
||||
if ! /usr/local/bin/shoutrrr send --url "${SHOUTRRR_URL}" --message "`echo -e "$DATUM FEHLER !!! \nUPDATE IP=$IP WURDE NICHT AN IPV64.NET GESENTET"`" 2> /dev/null; then
|
||||
DOMAIN_NOTIFY=$(for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do echo "DOMAIN mit PRAEFIX: ${DOMAIN_PRAEFIX}.${DOMAIN} "; done)
|
||||
if ! /usr/local/bin/shoutrrr send --url "${SHOUTRRR_URL}" --message "`echo -e "$DATUM INFO !!! \n\nUPDATE IP=$IP WURDE NICHT AN IPV64.NET GESENTET \n${DOMAIN_NOTIFY}"`" 2> /dev/null; then
|
||||
echo "$DATUM FEHLER !!! - SHOUTRRR NACHRICHT konnte nicht gesendet werden"
|
||||
else
|
||||
echo "$DATUM SHOUTRRR - SHOUTRRR NACHRICHT wurde gesendet"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
# curl -4sSL https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&praefix=${DOMAIN_PRAEFIX}&ip=<ipaddr>&ip6=<ip6addr>&output=min
|
||||
sleep 15
|
||||
# echo "$DATUM NACHEINTRAG - DOMAIN mit PRAEFIX HAT DEN A-RECORD=`dig +noall +answer ${DOMAIN_PRAEFIX}.${DOMAIN_IPV64} A @ns1.ipv64.net`"
|
||||
for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do echo "$DATUM NACHEINTRAG - DOMAIN mit PRAEFIX HAT DEN A-RECORD=`dig +noall +answer ${DOMAIN_PRAEFIX}.${DOMAIN} A @ns1.ipv64.net`"; done
|
||||
fi
|
||||
}
|
||||
CHECK_A_DOMAIN
|
||||
echo "=============================================================================================="
|
||||
|
||||
@@ -1,22 +1,49 @@
|
||||
#!/usr/bin/env bash
|
||||
PFAD="/data"
|
||||
DATUM=$(date +%Y-%m-%d\ %H:%M:%S)
|
||||
set -e
|
||||
# set -e
|
||||
if ! curl -4sf --user-agent "${CURL_USER_AGENT}" "https://ipv64.net" 2>&1 > /dev/null; then
|
||||
echo "$DATUM FEHLER !!! - 404 Sie haben kein Netzwerk oder Internetzugang oder die Webseite ipv64.net ist nicht erreichbar"
|
||||
STATUS="OK"
|
||||
NAMESERVER_CHECK=$(dig +timeout=1 @ns1.ipv64.net 2> /dev/null)
|
||||
echo "$NAMESERVER_CHECK" | grep -s -q "timed out" && { NAMESERVER_CHECK="Timeout" ; STATUS="FAIL" ; }
|
||||
if [ "${STATUS}" = "FAIL" ] ; then
|
||||
echo "$DATUM FEHLER !!! - 404 NAMESERVER ns1.ipv64.net ist nicht ist nicht erreichbar. Sie haben kein Netzwerk oder Internetzugang"
|
||||
echo "=============================================================================================="
|
||||
fi
|
||||
if ! curl -4sf "https://google.net" 2>&1 > /dev/null; then
|
||||
echo "$DATUM FEHLER !!! - 404 Sie haben kein Netzwerk oder Internetzugang oder die Webseite google.de ist nicht erreichbar"
|
||||
echo "=============================================================================================="
|
||||
exit 1
|
||||
fi
|
||||
STATUS="OK"
|
||||
NAMESERVER_CHECK=$(dig +timeout=1 @ns1.ipv64.net 2> /dev/null)
|
||||
echo "$NAMESERVER_CHECK" | grep -s -q "timed out" && { NAMESERVER_CHECK="Timeout" ; STATUS="FAIL" ; }
|
||||
if [ "${STATUS}" = "FAIL" ] ; then
|
||||
echo "$DATUM FEHLER !!! - 404 NAMESERVER ist nicht ist nicht erreichbar. Sie haben kein Netzwerk oder Internetzugang"
|
||||
else
|
||||
IP_INFO=$(curl -4sf "https://ipinfo.io/ip" 2>&1)
|
||||
UPDIP=$(cat $PFAD/updip.txt)
|
||||
echo "$DATUM INFO !!! - Die Webseite google.de ist erreichbar. Ihre Aktuelle IP laut IPINFO.IO=$IP_INFO"
|
||||
if [ "$IP_INFO" = "$UPDIP" ]; then
|
||||
echo > /dev/null
|
||||
else
|
||||
if [ -z "${SHOUTRRR_URL:-}" ] ; then
|
||||
echo > /dev/null
|
||||
else
|
||||
echo "$DATUM SHOUTRRR - SHOUTRRR NACHRICHT wird gesendet"
|
||||
DOMAIN_NOTIFY=$(for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do echo "DOMAIN: ${DOMAIN} "; done)
|
||||
if ! /usr/local/bin/shoutrrr send --url "${SHOUTRRR_URL}" --message "`echo -e "$DATUM INFO !!! \n\nIPV64.NET IST NICHT ERREICHBAR \nIHRE Aktuelle IP laut IPINFO.IO=$IP_INFO \n${DOMAIN_NOTIFY}"`" 2> /dev/null; then
|
||||
echo "$DATUM FEHLER !!! - SHOUTRRR NACHRICHT konnte nicht gesendet werden"
|
||||
else
|
||||
echo "$DATUM SHOUTRRR - SHOUTRRR NACHRICHT wurde gesendet"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
echo "$IP_INFO" > $PFAD/updip.txt
|
||||
echo "=============================================================================================="
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# IP=$(curl -4s https://ipv64.net/wieistmeineip.php | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | tail -n 1)
|
||||
IP=$(curl -4sSL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/update.php?howismyip" | jq -r 'to_entries[] | "\(.value)"')
|
||||
UPDIP=$(cat $PFAD/updip.txt)
|
||||
sleep 1
|
||||
|
||||
function SHOUTRRR_NOTIFY() {
|
||||
echo "$DATUM SHOUTRRR - SHOUTRRR NACHRICHT wird gesendet"
|
||||
@@ -38,24 +65,30 @@ else
|
||||
echo "$DATUM UPDATE !!! ..."
|
||||
echo "$DATUM UPDATE !!! - Update IP=$IP - Alte-IP=$UPDIP"
|
||||
sleep 1
|
||||
# curl -4sSL "https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&ip=${IP}&output=min"
|
||||
UPDATE_IP=$(curl -4sSL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&ip=${IP}&output=min")
|
||||
# if [ "$UPDATE_IP" = "ok" ] ; then
|
||||
if [[ "$UPDATE_IP" =~ (nochg|good|ok) ]] ; then
|
||||
echo "$DATUM UPDATE !!! - UPDATE IP=$IP WURDE AN IPV64.NET GESENDET"
|
||||
if [ -z "${SHOUTRRR_URL:-}" ] ; then
|
||||
echo > /dev/null
|
||||
else
|
||||
SHOUTRRR_NOTIFY
|
||||
fi
|
||||
echo "$IP" > $PFAD/updip.txt
|
||||
# curl -4sSL "https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&ip=${IP}&output=min"
|
||||
UPDATE_IP=$(curl -4sSL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&ip=${IP}&output=min")
|
||||
# if [ "$UPDATE_IP" = "ok" ] ; then
|
||||
if [[ "$UPDATE_IP" =~ (nochg|good|ok) ]] ; then
|
||||
echo "$DATUM UPDATE !!! - UPDATE IP=$IP WURDE AN IPV64.NET GESENDET"
|
||||
else
|
||||
echo "$DATUM FEHLER !!! - UPDATE IP=$IP WURDE NICHT AN IPV64.NET GESENTET"
|
||||
CHECK_INTERVALL=$(curl -4sSL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&ip=${IP}" | grep -o "Updateintervall")
|
||||
if [ "$CHECK_INTERVALL" == "Updateintervall" ]; then
|
||||
echo "$DATUM FEHLER !!! - Dein DynDNS Update Limit ist wohl erreicht"
|
||||
echo "$DATUM INFO !!! - Es kann erst wieder ein Update gesedet werden wenn dein DynDNS Update Limit im grünen Bereich ist"
|
||||
fi
|
||||
if [ -z "${SHOUTRRR_URL:-}" ] ; then
|
||||
echo > /dev/null
|
||||
else
|
||||
echo "$DATUM SHOUTRRR - SHOUTRRR NACHRICHT wird gesendet"
|
||||
if ! /usr/local/bin/shoutrrr send --url "${SHOUTRRR_URL}" --message "`echo -e "$DATUM FEHLER !!! \nUPDATE IP=$IP WURDE NICHT AN IPV64.NET GESENTET"`" 2> /dev/null; then
|
||||
DOMAIN_NOTIFY=$(for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do echo "DOMAIN: ${DOMAIN} "; done)
|
||||
if ! /usr/local/bin/shoutrrr send --url "${SHOUTRRR_URL}" --message "`echo -e "$DATUM INFO !!! \n\nUPDATE IP=$IP WURDE NICHT AN IPV64.NET GESENTET \n${DOMAIN_NOTIFY}"`" 2> /dev/null; then
|
||||
echo "$DATUM FEHLER !!! - NACHRICHT konnte nicht gesendet werden"
|
||||
else
|
||||
echo "$DATUM SHOUTRRR - SHOUTRRR NACHRICHT wurde gesendet"
|
||||
@@ -64,6 +97,7 @@ else
|
||||
fi
|
||||
# curl -4sSL https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&ip=<ipaddr>&ip6=<ip6addr>&output=min
|
||||
fi
|
||||
echo "=============================================================================================="
|
||||
sleep 5
|
||||
# Nachpruefung ob der DOMAIN Eintrag richtig gesetzt ist
|
||||
function CHECK_A_DOMAIN() {
|
||||
@@ -82,34 +116,41 @@ else
|
||||
echo "$DATUM UPDATE !!! - NACHEINTRAG DIE IP WIRD NOCH EINMAL GESETZT"
|
||||
echo "$DATUM UPDATE !!! - Update IP=$IP - Alte-IP=$UPDIP"
|
||||
sleep 5
|
||||
# curl -4sSL "https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&ip=${IP}&output=min"
|
||||
UPDATE_IP=$(curl -4sSL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&ip=${IP}&output=min")
|
||||
# if [ "$UPDATE_IP" = "ok" ] ; then
|
||||
if [[ "$UPDATE_IP" =~ (nochg|good|ok) ]] ; then
|
||||
echo "$DATUM UPDATE !!! - UPDATE IP=$IP WURDE AN IPV64.NET GESENDET"
|
||||
if [ -z "${SHOUTRRR_URL:-}" ] ; then
|
||||
echo > /dev/null
|
||||
else
|
||||
SHOUTRRR_NOTIFY
|
||||
fi
|
||||
echo "$IP" > $PFAD/updip.txt
|
||||
# curl -4sSL "https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&ip=${IP}&output=min"
|
||||
UPDATE_IP=$(curl -4sSL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&ip=${IP}&output=min")
|
||||
# if [ "$UPDATE_IP" = "ok" ] ; then
|
||||
if [[ "$UPDATE_IP" =~ (nochg|good|ok) ]] ; then
|
||||
echo "$DATUM UPDATE !!! - UPDATE IP=$IP WURDE AN IPV64.NET GESENDET"
|
||||
# curl -4sSL https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&ip=<ipaddr>&ip6=<ip6addr>&output=min
|
||||
sleep 15
|
||||
# echo "$DATUM NACHEINTRAG - DOMAIN HAT DEN A-RECORD=`dig +noall +answer ${DOMAIN_IPV64} A @ns1.ipv64.net`"
|
||||
for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do echo "$DATUM NACHEINTRAG - DOMAIN HAT DEN A-RECORD=`dig +noall +answer ${DOMAIN} A @ns1.ipv64.net`"; done
|
||||
else
|
||||
echo "$DATUM FEHLER !!! - UPDATE IP=$IP WURDE NICHT AN IPV64.NET GESENTET"
|
||||
CHECK_INTERVALL=$(curl -4sSL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&ip=${IP}" | grep -o "Updateintervall")
|
||||
if [ "$CHECK_INTERVALL" == "Updateintervall" ]; then
|
||||
echo "$DATUM FEHLER !!! - Dein DynDNS Update Limit ist wohl erreicht"
|
||||
echo "$DATUM INFO !!! - Es kann erst wieder ein Update gesedet werden wenn dein DynDNS Update Limit im grünen Bereich ist"
|
||||
fi
|
||||
if [ -z "${SHOUTRRR_URL:-}" ] ; then
|
||||
echo > /dev/null
|
||||
else
|
||||
echo "$DATUM SHOUTRRR - SHOUTRRR NACHRICHT wird gesendet"
|
||||
if ! /usr/local/bin/shoutrrr send --url "${SHOUTRRR_URL}" --message "`echo -e "$DATUM FEHLER !!! \nUPDATE IP=$IP WURDE NICHT AN IPV64.NET GESENTET"`" 2> /dev/null; then
|
||||
DOMAIN_NOTIFY=$(for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do echo "DOMAIN: ${DOMAIN} "; done)
|
||||
if ! /usr/local/bin/shoutrrr send --url "${SHOUTRRR_URL}" --message "`echo -e "$DATUM INFO !!! \n\nUPDATE IP=$IP WURDE NICHT AN IPV64.NET GESENTET \n${DOMAIN_NOTIFY}"`" 2> /dev/null; then
|
||||
echo "$DATUM FEHLER !!! - SHOUTRRR NACHRICHT konnte nicht gesendet werden"
|
||||
else
|
||||
echo "$DATUM SHOUTRRR - SHOUTRRR NACHRICHT wurde gesendet"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
# curl -4sSL https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&ip=<ipaddr>&ip6=<ip6addr>&output=min
|
||||
sleep 15
|
||||
# echo "$DATUM NACHEINTRAG - DOMAIN HAT DEN A-RECORD=`dig +noall +answer ${DOMAIN_IPV64} A @ns1.ipv64.net`"
|
||||
for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do echo "$DATUM NACHEINTRAG - DOMAIN HAT DEN A-RECORD=`dig +noall +answer ${DOMAIN} A @ns1.ipv64.net`"; done
|
||||
fi
|
||||
}
|
||||
CHECK_A_DOMAIN
|
||||
echo "=============================================================================================="
|
||||
|
||||
@@ -1,15 +1,17 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
# set -e
|
||||
DATUM=$(date +%Y-%m-%d\ %H:%M:%S)
|
||||
if ! curl -4sf --user-agent "${CURL_USER_AGENT}" "https://ipv64.net" 2>&1 > /dev/null; then
|
||||
echo "$DATUM FEHLER !!! - 404 Sie haben kein Netzwerk oder Internetzugang oder die Webseite ipv64.net ist nicht erreichbar"
|
||||
echo "=============================================================================================="
|
||||
exit 1
|
||||
fi
|
||||
STATUS="OK"
|
||||
NAMESERVER_CHECK=$(dig +timeout=1 @ns1.ipv64.net 2> /dev/null)
|
||||
echo "$NAMESERVER_CHECK" | grep -s -q "timed out" && { NAMESERVER_CHECK="Timeout" ; STATUS="FAIL" ; }
|
||||
if [ "${STATUS}" = "FAIL" ] ; then
|
||||
echo "$DATUM FEHLER !!! - 404 NAMESERVER ist nicht ist nicht erreichbar. Sie haben kein Netzwerk oder Internetzugang"
|
||||
echo "$DATUM FEHLER !!! - 404 NAMESERVER ns1.ipv64.net ist nicht ist nicht erreichbar. Sie haben kein Netzwerk oder Internetzugang"
|
||||
echo "=============================================================================================="
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -22,3 +24,4 @@ else
|
||||
echo "`date +%Y-%m-%d\ %H:%M:%S` IP CHECK - Deine DOMAIN ${DOMAIN} HAT DIE IP=`dig +short ${DOMAIN} A @ns1.ipv64.net`" >> /var/log/cron.log 2>&1
|
||||
done
|
||||
fi
|
||||
echo "=============================================================================================="
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
# set -x
|
||||
set -e
|
||||
# set -e
|
||||
DATUM=$(date +%Y-%m-%d\ %H:%M:%S)
|
||||
# cleanup
|
||||
cleanup() {
|
||||
@@ -74,18 +74,27 @@ if [ -z "${CRON_TIME_DIG:-}" ] ; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! curl -4sf --user-agent "${CURL_USER_AGENT}" "https://ipv64.net" 2>&1 > /dev/null; then
|
||||
while true; do
|
||||
if ! curl -4sf --user-agent "${CURL_USER_AGENT}" "https://ipv64.net" 2>&1 > /dev/null; then
|
||||
echo "$DATUM FEHLER !!! - 404 Sie haben kein Netzwerk oder Internetzugang oder die Webseite ipv64.net ist nicht erreichbar"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
STATUS="OK"
|
||||
NAMESERVER_CHECK=$(dig +timeout=1 @ns1.ipv64.net 2> /dev/null)
|
||||
echo "$NAMESERVER_CHECK" | grep -s -q "timed out" && { NAMESERVER_CHECK="Timeout" ; STATUS="FAIL" ; }
|
||||
if [ "${STATUS}" = "FAIL" ] ; then
|
||||
echo "$DATUM FEHLER !!! - 404 NAMESERVER ist nicht ist nicht erreichbar. Sie haben kein Netzwerk oder Internetzugang"
|
||||
exit 1
|
||||
fi
|
||||
sleep 900
|
||||
echo "=============================================================================================="
|
||||
else
|
||||
break
|
||||
fi
|
||||
done
|
||||
while true; do
|
||||
STATUS="OK"
|
||||
NAMESERVER_CHECK=$(dig +timeout=1 @ns1.ipv64.net 2> /dev/null)
|
||||
echo "$NAMESERVER_CHECK" | grep -s -q "timed out" && { NAMESERVER_CHECK="Timeout" ; STATUS="FAIL" ; }
|
||||
if [ "${STATUS}" = "FAIL" ] ; then
|
||||
echo "$DATUM FEHLER !!! - 404 NAMESERVER ns1.ipv64.net ist nicht ist nicht erreichbar. Sie haben kein Netzwerk oder Internetzugang"
|
||||
sleep 900
|
||||
echo "=============================================================================================="
|
||||
else
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [ -z "${SHOUTRRR_URL:-}" ] ; then
|
||||
echo "$DATUM SHOUTRRR - Sie haben keine SHOUTRRR URL gesetzt"
|
||||
@@ -94,7 +103,8 @@ else
|
||||
if ! /usr/local/bin/shoutrrr send --url "${SHOUTRRR_URL}" --message "`echo -e "$DATUM TEST !!! \nDDNS Updater in Docker fuer Free DynDNS IPv64.net"`" 2> /dev/null; then
|
||||
echo "$DATUM FEHLER !!! - Die Angaben sind falsch gesetzt: SHOUTRRR URL"
|
||||
echo "$DATUM INFO !!! - Schaue unter https://containrrr.dev/shoutrrr/ nach dem richtigen URL Format"
|
||||
exit 1
|
||||
echo "$DATUM INFO !!! - Stoppen sie den Container und Starten sie den Container mit den richtigen Angaben erneut"
|
||||
sleep infinity
|
||||
else
|
||||
echo "$DATUM CHECK - Die Angaben sind richtig gesetzt: SHOUTRRR URL"
|
||||
fi
|
||||
@@ -111,10 +121,21 @@ if [[ "$CHECK" =~ (nochg|good|ok) ]] ; then
|
||||
echo "$DATUM CHECK - Die Angaben sind richtig gesetzt: DOMAIN und DOMAIN KEY"
|
||||
sleep 5
|
||||
for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do echo "$DATUM IP CHECK - Deine DOMAIN ${DOMAIN} HAT DIE IP=`dig +short ${DOMAIN} A @ns1.ipv64.net`"; done
|
||||
echo "${IP}" > /data/updip.txt
|
||||
sleep 2
|
||||
else
|
||||
CHECK_INTERVALL=$(curl -4sSL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&ip=${IP}" | grep -o "Updateintervall")
|
||||
if [ "$CHECK_INTERVALL" == "Updateintervall" ]; then
|
||||
echo "$DATUM CHECK - Die Angaben sind richtig gesetzt: DOMAIN und DOMAIN KEY"
|
||||
echo "$DATUM FEHLER !!! - Dein DynDNS Update Limit ist wohl erreicht"
|
||||
echo "$DATUM INFO !!! - Es kann erst wieder ein Update gesedet werden wenn dein DynDNS Update Limit im grünen Bereich ist"
|
||||
else
|
||||
echo "$DATUM FEHLER !!! - Die Angaben sind falsch gesetzt: DOMAIN oder DOMAIN KEY"
|
||||
exit 1
|
||||
echo "$DATUM INFO !!! - Stoppen sie den Container und Starten sie den Container mit den richtigen Angaben erneut"
|
||||
return
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "${CRON_TIME} /bin/bash /data/ddns-update.sh >> /var/log/cron.log 2>&1" > /etc/cron.d/container_cronjob
|
||||
echo "${CRON_TIME_DIG} sleep 20 && /bin/bash /data/domain-ip-scheck.sh >> /var/log/cron.log 2>&1" >> /etc/cron.d/container_cronjob
|
||||
# echo "$CRON_TIME_DIG" 'sleep 20 && echo "`date +%Y-%m-%d\ %H:%M:%S` IP CHECK - Deine DOMAIN ${DOMAIN_IPV64} HAT DIE IP=`dig +short ${DOMAIN_IPV64} A @ns1.ipv64.net`" >> /var/log/cron.log 2>&1' >> /etc/cron.d/container_cronjob
|
||||
@@ -127,9 +148,19 @@ if [[ "$CHECK" =~ (nochg|good|ok) ]] ; then
|
||||
echo "$DATUM CHECK - Die Angaben sind richtig gesetzt: DOMAIN mit PRAEFIX und DOMAIN KEY"
|
||||
sleep 5
|
||||
for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do echo "$DATUM IP CHECK - Deine DOMAIN mit PRAEFIX ${DOMAIN_PRAEFIX}.${DOMAIN} HAT DIE IP=`dig +short ${DOMAIN_PRAEFIX}.${DOMAIN} A @ns1.ipv64.net`"; done
|
||||
echo "${IP}" > /data/updip.txt
|
||||
sleep 2
|
||||
else
|
||||
CHECK_INTERVALL=$(curl -4sSL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&praefix=${DOMAIN_PRAEFIX}&ip=${IP}" | grep -o "Updateintervall")
|
||||
if [ "$CHECK_INTERVALL" == "Updateintervall" ]; then
|
||||
echo "$DATUM CHECK - Die Angaben sind richtig gesetzt: DOMAIN mit PRAEFIX und DOMAIN KEY"
|
||||
echo "$DATUM FEHLER !!! - Dein DynDNS Update Limit ist wohl erreicht"
|
||||
echo "$DATUM INFO !!! - Es kann erst wieder ein Update gesedet werden wenn dein DynDNS Update Limit im grünen Bereich ist"
|
||||
else
|
||||
echo "$DATUM FEHLER !!! - Die Angaben sind falsch gesetzt: DOMAIN mit PRAEFIX oder DOMAIN KEY"
|
||||
exit 1
|
||||
echo "$DATUM INFO !!! - Stoppen sie den Container und Starten sie den Container mit den richtigen Angaben erneut"
|
||||
return
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "${CRON_TIME} /bin/bash /data/ddns-update-praefix.sh >> /var/log/cron.log 2>&1" > /etc/cron.d/container_cronjob
|
||||
@@ -143,12 +174,9 @@ else
|
||||
Domain_default
|
||||
fi
|
||||
|
||||
echo "${IP}" > /data/updip.txt
|
||||
sleep 2
|
||||
|
||||
/usr/bin/crontab /etc/cron.d/container_cronjob
|
||||
/usr/sbin/crond
|
||||
|
||||
echo "=============================================================================================="
|
||||
set tail -f /var/log/cron.log "$@"
|
||||
exec "$@" &
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
DATUM=$(date +%Y-%m-%d\ %H:%M:%S)
|
||||
set -e
|
||||
# set -e
|
||||
if ! curl -4sf --user-agent "${CURL_USER_AGENT}" "https://ipv64.net" 2>&1 > /dev/null; then
|
||||
echo "$DATUM FEHLER !!! - 404 Sie haben kein Netzwerk oder Internetzugang oder die Webseite ipv64.net ist nicht erreichbar"
|
||||
exit 1
|
||||
@@ -9,6 +9,6 @@ STATUS="OK"
|
||||
NAMESERVER_CHECK=$(dig +timeout=1 @ns1.ipv64.net 2> /dev/null)
|
||||
echo "$NAMESERVER_CHECK" | grep -s -q "timed out" && { NAMESERVER_CHECK="Timeout" ; STATUS="FAIL" ; }
|
||||
if [ "${STATUS}" = "FAIL" ] ; then
|
||||
echo "$DATUM FEHLER !!! - 404 NAMESERVER ist nicht ist nicht erreichbar. Sie haben kein Netzwerk oder Internetzugang"
|
||||
echo "$DATUM FEHLER !!! - 404 NAMESERVER ns1.ipv64.net ist nicht ist nicht erreichbar. Sie haben kein Netzwerk oder Internetzugang"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -4,7 +4,7 @@ services:
|
||||
# build:
|
||||
# dockerfile: ./Dockerfile
|
||||
image: alcapone1933/ddns-ipv64:latest
|
||||
# image: alcapone1933/ddns-ipv64:v0.1.0
|
||||
# image: alcapone1933/ddns-ipv64:v0.1.1
|
||||
container_name: ddns-ipv64
|
||||
restart: always
|
||||
# volumes:
|
||||
|
||||
Reference in New Issue
Block a user