Merge pull request 'v0.1.1' (#7) from development into master

This commit is contained in:
alcapone1933
2022-12-31 14:34:31 +01:00
9 changed files with 199 additions and 87 deletions

View File

@@ -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:

View File

@@ -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 && \

View File

@@ -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

View File

@@ -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"
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
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
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
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"
if [ -z "${SHOUTRRR_URL:-}" ] ; then
echo > /dev/null
else
SHOUTRRR_NOTIFY
fi
echo "$IP" > $PFAD/updip.txt
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
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"
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=<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 "=============================================================================================="

View File

@@ -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"
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
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
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
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"
if [ -z "${SHOUTRRR_URL:-}" ] ; then
echo > /dev/null
else
SHOUTRRR_NOTIFY
fi
echo "$IP" > $PFAD/updip.txt
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
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"
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=<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 "=============================================================================================="

View File

@@ -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 "=============================================================================================="

View File

@@ -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
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
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"
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
echo "$DATUM FEHLER !!! - Die Angaben sind falsch gesetzt: DOMAIN oder DOMAIN KEY"
exit 1
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"
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
echo "$DATUM FEHLER !!! - Die Angaben sind falsch gesetzt: DOMAIN mit PRAEFIX oder DOMAIN KEY"
exit 1
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"
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 "$@" &

View File

@@ -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

View File

@@ -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: