11 Commits

Author SHA1 Message Date
alcapone1933
e77043a427 Merge pull request 'development' (#4) from development into master 2022-11-29 17:02:53 +01:00
alcapone1933
776eb3ac8d v0.0.8 2022-11-29 17:02:10 +01:00
alcapone1933
0ce80be3dc v0.0.8 2022-11-29 16:54:10 +01:00
alcapone1933
79be8ef001 update 2022-11-28 09:42:24 +01:00
alcapone1933
6d7e5cd1b8 „README.md“ ändern 2022-11-27 01:16:52 +01:00
alcapone1933
5cf152a114 update 2022-11-27 01:08:36 +01:00
alcapone1933
aef9e8a468 Merge pull request 'v0.0.7' (#2) from development into master 2022-11-26 13:07:51 +01:00
alcapone1933
a574ab7cfb v0.0.7 2022-11-26 00:19:24 +01:00
alcapone1933
6af83e2a7a Readme 2022-11-12 14:46:50 +01:00
alcapone1933
a7c1e4c82d Merge pull request 'v.0.0.6 User-agent' (#1) from development into master
v.0.0.6 User-agent
2022-11-12 11:24:56 +01:00
alcapone1933
a7045709c8 v.0.0.6 User-agent 2022-11-12 11:13:46 +01:00
11 changed files with 409 additions and 88 deletions

View File

@@ -37,7 +37,7 @@ steps:
repo: alcapone1933/ddns-ipv64
# tags: latest
auto_tag: true
auto_tag_suffix: v0.0.5
auto_tag_suffix: v0.0.8
trigger:
branch:
@@ -68,7 +68,7 @@ steps:
repo: ghcr.io/alcapone1933/ddns-ipv64
# tags: latest
auto_tag: true
auto_tag_suffix: v0.0.5
auto_tag_suffix: v0.0.8
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.0.5" \
org.opencontainers.image.version="v0.0.8" \
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,6 +12,8 @@ LABEL maintainer="alcapone1933 <alcapone1933@cosanostra-cloud.de>" \
ENV TZ=Europe/Berlin
ENV CRON_TIME="*/15 * * * *"
ENV CRON_TIME_DIG="*/30 * * * *"
ENV VERSION="v0.0.8"
ENV CURL_USER_AGENT="docker-ddns-ipv64/version=$VERSION github.com/alcapone1933/docker-ddns-ipv64"
RUN apk add --update --no-cache tzdata curl bash tini bind-tools jq && \
rm -rf /var/cache/apk/*
@@ -19,10 +21,10 @@ RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN mkdir -p /data /usr/local/bin/ /etc/cron.d/
COPY data /data
RUN mv /data/entrypoint.sh /usr/local/bin/entrypoint.sh && mv /data/cronjob /etc/cron.d/container_cronjob && mv /data/healthcheck.sh /usr/local/bin/healthcheck.sh && \
chmod 755 /data/ddns-update.sh && chmod 755 /usr/local/bin/entrypoint.sh && chmod 755 /usr/local/bin/healthcheck.sh && \
chmod 755 /etc/cron.d/container_cronjob && touch /var/log/cron.log
chmod 755 /data/ddns-update.sh && chmod 755 /data/ddns-update-praefix.sh && chmod 755 /data/ddns-update-dkey.sh && chmod 755 /data/ddns-update-dkey-praefix.sh && \
chmod 755 /usr/local/bin/entrypoint.sh && chmod 755 /usr/local/bin/healthcheck.sh && chmod 755 /etc/cron.d/container_cronjob && touch /var/log/cron.log
# VOLUME [ "/data" ]
ENTRYPOINT ["/sbin/tini", "--", "/usr/local/bin/entrypoint.sh"]
HEALTHCHECK --interval=5s --timeout=30s --start-period=5s --retries=3 CMD curl -sSL --fail https://ipv64.net/ > /dev/null || exit 1
HEALTHCHECK --interval=5s --timeout=30s --start-period=5s --retries=3 CMD curl -sSL --user-agent "${CURL_USER_AGENT}" --fail "https://ipv64.net" > /dev/null || exit 1
# HEALTHCHECK --interval=5s --timeout=30s --start-period=5s --retries=2 CMD /usr/local/bin/healthcheck.sh

100
README.md
View File

@@ -7,30 +7,67 @@
[![Website](https://shields.cosanostra-cloud.de/website?down_color=red&down_message=down&label=Status%20Webseite%20IPV64.NET&style=plastic&up_color=green&up_message=ready&url=https%3A%2F%2Fipv64.net%2F)](https://ipv64.net/)
&nbsp;
# DDNS Updater in Docker für Free DynDNS [IPv64.net](https://ipv64.net/) -NUR FÜR IPV4-
# DDNS Updater in Docker für Free DynDNS [IPv64.net](https://ipv64.net/) - NUR FÜR IPV4 -
Dieser Docker Container ist ein DDNS Updater für Free DynDNS - ipv64.net.
Bei Änderung der ipv4 Adresse am Standort, wird die neue ipv4 Adresse als A-Record an ipv64.net geschickt.
Bei einer Änderung der ipv4 Adresse am Standort wird die neue ipv4 Adresse als A-Record an ipv64.net geschickt.
Wenn sie dieses Docker Projekt nutzen möchten, ändern sie die Environments vor dem starten des Docker Containers.
Wenn Du dieses Docker Projekt nutzen möchtest, ändere bitte die Environments vor dem Starten des Docker Containers.
&nbsp;
* Hier bitte deine DOMAIN eintragen (ersetzen) die unter https://ipv64.net/dyndns.php erstellt wurde Z.B "deine-domain.ipv64.net"
***
## Erklärung
### Domain
* Hier bitte deine DOMAIN eintragen (ersetzen), die unter https://ipv64.net/dyndns.php erstellt wurde, z.B "deine-domain.ipv64.net"
`-e "DOMAIN_IPV64=deine-domain.ipv64.net"`
* Wenn sie mehrer DOMAINS eintragen wollen bitte mit Komma trennen
* Wenn Du mehrere DOMAINS eintragen willst, bitte mit Komma trennen:
`-e "DOMAIN_IPV64=deine-domain.ipv64.net,deine-domain.ipv64.de"`
* Hier bitte dein DOMAIN KEY bzw. DynDNS Updatehash eintragen (ersetzen). Zu finden ist dieser unter https://ipv64.net/dyndns.php z.B "1234567890abcdefghijklmn"
&nbsp;
### Domain Praefix
* Wenn Du einen DOMAIN PRAEFIX verwenden willst, dann benutze die Variablen ***DOMAIN_PRAEFIX_YES=yes*** und ***DOMAIN_PRAEFIX***
`-e "DOMAIN_PRAEFIX_YES=yes"`
* Hier bitte nur ein DOMAIN PRAEFIX (subdomain) eintragen (ersetzen), das unter https://ipv64.net/dyndns.php erstellt wurde:
`-e "DOMAIN_PRAEFIX=ddns"`
⚠️ ***Solltest Du mehrere DOMAINS verwenden, dann bitte nur ein PRAEFIX eintragen (ersetzen)*** ⚠️
***Bei mehreren Domains wird immer derselbe PRAEFIX verwendet.***
***Beispiel: ddns.deine-domain.ipv64.net und ddns.deine-domain.ipv64.de***
&nbsp;
### Domain Key
* Hier bitte dein DOMAIN KEY bzw. DynDNS Updatehash eintragen (ersetzen) oder den dkey.\
Zu finden ist dieser unter https://ipv64.net/dyndns.php z.B "1234567890abcdefghijklmn"
`-e "DOMAIN_KEY=1234567890abcdefghijklmn"`
* Es gibt auch die Möglichkeit den DNS-Update Befehl für eine bestimmte Domain durchzuführen. \
Dann benutze die Variable ***DOMAIN_KEY_TYPE=dkey*** einfach anstatt Standard key. \
Der dkey ist zu fiden im unter https://ipv64.net/dyndns.php wenn man auf eine Domain klickt.
`-e "DOMAIN_KEY_TYPE=dkey"`
&nbsp;
***
## Docker CLI
```bash
@@ -44,7 +81,11 @@ docker run -d \
alcapone1933/ddns-ipv64:latest
-e "DOMAIN_IPV64=deine-domain.ipv64.net,deine-domain.ipv64.de"
-e "DOMAIN_IPV64=deine-domain.ipv64.net,deine-domain.ipv64.de" \
-e "DOMAIN_PRAEFIX_YES=yes" \
"⚠️ Hier bitte nur ein DOMAIN PRAEFIX (subdomain) eintragen (ersetzen) ⚠️"
-e "DOMAIN_PRAEFIX=ddns" \
-e "DOMAIN_KEY_TYPE=dkey" \
```
## Docker Compose
@@ -58,44 +99,52 @@ services:
restart: always
environment:
- "TZ=Europe/Berlin"
# Standard Abfrage Alle 15 Minuten nach der aktuellen ip
# Standard Abfrage alle 15 Minuten nach der aktuellen ip
- "CRON_TIME=*/15 * * * *"
# Standard Abfrage Alle 30 Minuten für die Domain Adresse
# Standard Abfrage alle 30 Minuten für die Domain Adresse
- "CRON_TIME_DIG=*/30 * * * *"
# Hier bitte deine DOMAIN eintragen (ersetzen) die unter https://ipv64.net/dyndns.php erstellt wurde Z.B "deine-domain.ipv64.net"
# Hier bitte deine DOMAIN eintragen (ersetzen), die unter https://ipv64.net/dyndns.php erstellt wurde, z.B "deine-domain.ipv64.net"
- "DOMAIN_IPV64=deine-domain.ipv64.net"
# Wenn sie mehrer DOMAINS eintragen wollen bitte mit Komma trennen
# "DOMAIN_IPV64=deine-domain.ipv64.net,deine-domain.ipv64.de"
# Hier bitte dein DOMAIN KEY bzw. DynDNS Updatehash eintragen (ersetzen). Zu finden ist dieser unter https://ipv64.net/dyndns.php z.B "1234567890abcdefghijklmn"
# Wenn Du mehrere DOMAINS eintragen willst, bitte mit Komma trennen:
# - "DOMAIN_IPV64=deine-domain.ipv64.net,deine-domain.ipv64.de"
# Damit wird das Domain PRAEFIX aktiv genutzt
# - "DOMAIN_PRAEFIX_YES=yes"
# ⚠️ Hier bitte nur ein DOMAIN PRAEFIX (subdomain) eintragen (ersetzen), das unter https://ipv64.net/dyndns.php erstellt wurde. Gilt auch bei mehreren Domains ⚠️
# - "DOMAIN_PRAEFIX=ddns"
# Hier bitte dein DOMAIN KEY bzw. DynDNS Updatehash eintragen (ersetzen). Zu finden ist dieser unter https://ipv64.net/dyndns.php z.B "1234567890abcdefghijklmn"
- "DOMAIN_KEY=1234567890abcdefghijklmn"
# Der KEY TYPE ist für eine Domain oder mehrere Domains zuständig und gültig
# - "DOMAIN_KEY_TYPE=dkey"
```
&nbsp;
&nbsp;
***
## Volume Parameter
| Name (Beschreibung) #Optional | Wert | Standard |
| ----------------------------- | ------- | --------------------- |
| Speicherort logs und Script | volume | ddns-ipv64_data:/data |
| Speicherort logs und script | volume | ddns-ipv64_data:/data |
| | | /dein Pfad:/data |
* * *
&nbsp;
## Env Parameter
| Name (Beschreibung) | Wert | Standard | Beispiel |
| ---------------------------------------------------------------------------------------------- | --------------- | ------------------ | -------------------------------------------- |
| Zeitzone | TZ | Europe/Berlin | Europe/Berlin |
| Zeitliche Abfrage für die aktuelle IP | CRON_TIME | */15 * * * * | */15 * * * * |
| Zeitliche Abfrage auf die Domain (dig DOMAIN_IPV64 A) | CRON_TIME_DIG | */30 * * * * | */30 * * * * |
| DOMAIN KEY: DEIN DOMAIN KEY bzw. DynDNS Updatehash zu fiden unter https://ipv64.net/dyndns.php | DOMAIN_KEY | ------------------ | 1234567890abcdefghijklmn |
| DEINE DOMAIN: z.b. deine-domain.ipv64.net zu fiden unter https://ipv64.net/dyndns.php | DOMAIN_IPV64 | ------------------ | deine-domain.ipv64.net |
| DEINE DOMAINS: z.b. deine-domain.ipv64.net,deine-domain.ipv64.de | DOMAIN_IPV64 | ------------------ | deine-domain.ipv64.net,deine-domain.ipv64.de |
| Name (Beschreibung) | Wert | Standard | Beispiel |
| ----------------------------------------------------------------------------------------------- | ------------------ | ------------------ | -------------------------------------------- |
| Zeitzone | TZ | Europe/Berlin | Europe/Berlin |
| Zeitliche Abfrage für die aktuelle IP | CRON_TIME | */15 * * * * | */15 * * * * |
| Zeitliche Abfrage auf die Domain (dig DOMAIN_IPV64 A) | CRON_TIME_DIG | */30 * * * * | */30 * * * * |
| DOMAIN KEY: DEIN DOMAIN KEY bzw. DynDNS Updatehash zu finden unter https://ipv64.net/dyndns.php | DOMAIN_KEY | ------------------ | 1234567890abcdefghijklmn |
| DOMAIN KEY TYPE: Der KEY TYPE ist für eine Domain oder mehrere Domains zuständig und gültig | DOMAIN_KEY_TYPE | key | dkey |
| DEINE DOMAIN: z.b. deine-domain.ipv64.net zu finden unter https://ipv64.net/dyndns.php | DOMAIN_IPV64 | ------------------ | deine-domain.ipv64.net |
| DEINE DOMAINS: z.b. deine-domain.ipv64.net, deine-domain.ipv64.de | DOMAIN_IPV64 | ------------------ | deine-domain.ipv64.net,deine-domain.ipv64.de |
| DOMAIN PRAEFIX YES: Damit wird das Domain PRAEFIX aktiv genutzt | DOMAIN_PRAEFIX_YES | no | yes |
| DEIN DOMAIN PRAEFIX (subdomain) : ⚠️ Nur ein Praefix verwenden ⚠️ z.b. ddns | DOMAIN_PRAEFIX | ------------------ | ddns |
* * *
&nbsp;
@@ -103,4 +152,3 @@ services:
## DEMO
<img src="demo/demo.gif" width="700" height="400">

View File

@@ -2,3 +2,4 @@
*/15 * * * * /bin/bash /data/ddns-update.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

@@ -0,0 +1,59 @@
#!/usr/bin/env bash
DATUM=$(date +%Y-%m-%d\ %H:%M:%S)
if ! curl -sSL --user-agent "${CURL_USER_AGENT}" --fail "https://ipv64.net" > /dev/null; then
echo "$DATUM FEHLER !!! - 404 Sie haben kein Netzwerk oder Internetzugang oder die Webseite ipv64.net ist nicht erreichbar"
exit 0
fi
PFAD="/data"
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
if [ "$IP" == "$UPDIP" ]; then
echo "$DATUM KEIN UPDATE - Aktuelle IP=$UPDIP"
else
echo "$DATUM UPDATE !!! ..."
echo "$DATUM UPDATE !!! - Update IP=$IP - Alte-IP=$UPDIP"
sleep 1
echo "$IP" > $PFAD/updip.txt
# curl -4sSL "https://ipv64.net/update.php?dkey=${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?dkey=${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 AN IPV64.NET GESENDET"
else
echo "$DATUM UPDATE !!! - UPDATE IP=$IP NICHT GESENTET"
fi
# curl -4sSL https://ipv64.net/update.php?dkey=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&praefix=${DOMAIN_PRAEFIX}&ip=<ipaddr>&ip6=<ip6addr>&output=min
fi
sleep 5
# Nachpruefung ob der DOMAIN Eintrag richtig gesetzt ist
function CHECK_A_DOMAIN() {
DATUM=$(date +%Y-%m-%d\ %H:%M:%S)
UPDIP=$(cat $PFAD/updip.txt)
# 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)"')
DOMAIN_CHECK=$(dig +short ${DOMAIN_PRAEFIX}.${DOMAIN_IPV64} A @ns1.ipv64.net)
sleep 1
if [ "$IP" == "$DOMAIN_CHECK" ]; then
echo "$DATUM CHECK - DOMAIN mit PRAEFIX HAT DEN A-RECORD=`dig +noall +answer ${DOMAIN_PRAEFIX}.${DOMAIN_IPV64} A @ns1.ipv64.net`"
else
echo "$DATUM UPDATE !!! ..."
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?dkey=${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?dkey=${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 AN IPV64.NET GESENDET"
else
echo "$DATUM UPDATE !!! - UPDATE IP=$IP NICHT GESENTET"
fi
# curl -4sSL https://ipv64.net/update.php?dkey=${DOMAIN_KEY}=${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`"
fi
}
CHECK_A_DOMAIN

60
data/ddns-update-dkey.sh Normal file
View File

@@ -0,0 +1,60 @@
#!/usr/bin/env bash
DATUM=$(date +%Y-%m-%d\ %H:%M:%S)
if ! curl -sSL --user-agent "${CURL_USER_AGENT}" --fail "https://ipv64.net" > /dev/null; then
echo "$DATUM FEHLER !!! - 404 Sie haben kein Netzwerk oder Internetzugang oder die Webseite ipv64.net ist nicht erreichbar"
exit 0
fi
PFAD="/data"
# 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
if [ "$IP" == "$UPDIP" ]; then
echo "$DATUM KEIN UPDATE - Aktuelle IP=$UPDIP"
else
echo "$DATUM UPDATE !!! ..."
echo "$DATUM UPDATE !!! - Update IP=$IP - Alte-IP=$UPDIP"
sleep 1
echo "$IP" > $PFAD/updip.txt
# curl -4sSL "https://ipv64.net/update.php?dkey=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&ip=${IP}&output=min"
UPDATE_IP=$(curl -4sSL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/update.php?dkey=${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 AN IPV64.NET GESENDET"
else
echo "$DATUM UPDATE !!! - UPDATE IP=$IP NICHT GESENTET"
fi
# curl -4sSL https://ipv64.net/update.php?dkey=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&ip=<ipaddr>&ip6=<ip6addr>&output=min
fi
sleep 5
# Nachpruefung ob der DOMAIN Eintrag richtig gesetzt ist
function CHECK_A_DOMAIN() {
DATUM=$(date +%Y-%m-%d\ %H:%M:%S)
UPDIP=$(cat $PFAD/updip.txt)
# 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)"')
DOMAIN_CHECK=$(dig +short ${DOMAIN_IPV64} A @ns1.ipv64.net)
sleep 1
if [ "$IP" == "$DOMAIN_CHECK" ]; then
echo "$DATUM CHECK - DOMAIN HAT DEN A-RECORD=`dig +noall +answer ${DOMAIN_IPV64} A @ns1.ipv64.net`"
else
echo "$DATUM UPDATE !!! ..."
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?dkey=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&ip=${IP}&output=min"
UPDATE_IP=$(curl -4sSL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/update.php?dkey=${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 AN IPV64.NET GESENDET"
else
echo "$DATUM UPDATE !!! - UPDATE IP=$IP NICHT GESENTET"
fi
# curl -4sSL https://ipv64.net/update.php?dkey=${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`"
fi
}
CHECK_A_DOMAIN

View File

@@ -0,0 +1,62 @@
#!/usr/bin/env bash
DATUM=$(date +%Y-%m-%d\ %H:%M:%S)
if ! curl -sSL --user-agent "${CURL_USER_AGENT}" --fail "https://ipv64.net" > /dev/null; then
echo "$DATUM FEHLER !!! - 404 Sie haben kein Netzwerk oder Internetzugang oder die Webseite ipv64.net ist nicht erreichbar"
exit 0
fi
PFAD="/data"
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
if [ "$IP" == "$UPDIP" ]; then
echo "$DATUM KEIN UPDATE - Aktuelle IP=$UPDIP"
else
echo "$DATUM UPDATE !!! ..."
echo "$DATUM UPDATE !!! - Update IP=$IP - Alte-IP=$UPDIP"
sleep 1
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 AN IPV64.NET GESENDET"
else
echo "$DATUM UPDATE !!! - UPDATE IP=$IP NICHT GESENTET"
fi
# curl -4sSL https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}praefix=${DOMAIN_PRAEFIX}&ip=<ipaddr>&ip6=<ip6addr>&output=min
fi
sleep 5
# Nachpruefung ob der DOMAIN Eintrag richtig gesetzt ist
function CHECK_A_DOMAIN() {
DATUM=$(date +%Y-%m-%d\ %H:%M:%S)
UPDIP=$(cat $PFAD/updip.txt)
# 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)"')
# DOMAIN_CHECK=$(dig +short ${DOMAIN_IPV64} A @ns1.ipv64.net)
DOMAIN_CHECK=$(for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do dig +short ${DOMAIN_PRAEFIX}.${DOMAIN} A @ns1.ipv64.net; done | tail -n 1)
sleep 1
if [ "$IP" == "$DOMAIN_CHECK" ]; then
# echo "$DATUM CHECK - 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 CHECK - DOMAIN mit PRAEFIX HAT DEN A-RECORD=`dig +noall +answer ${DOMAIN_PRAEFIX}.${DOMAIN} A @ns1.ipv64.net`"; done
else
echo "$DATUM UPDATE !!! ..."
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 AN IPV64.NET GESENDET"
else
echo "$DATUM UPDATE !!! - UPDATE IP=$IP NICHT GESENTET"
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

View File

@@ -1,32 +1,32 @@
#!/usr/bin/env bash
DATUM=$(date +%Y-%m-%d\ %H:%M:%S)
if ! curl -sSL --fail https://ipv64.net/ > /dev/null; then
echo "$DATUM FEHLER !!! - 404 Sie haben kein Netzwerk oder Internetzugang"
if ! curl -sSL --user-agent "${CURL_USER_AGENT}" --fail "https://ipv64.net" > /dev/null; then
echo "$DATUM FEHLER !!! - 404 Sie haben kein Netzwerk oder Internetzugang oder die Webseite ipv64.net ist nicht erreichbar"
exit 0
fi
PFAD="/data"
# 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 https://ipv64.net/update.php?howismyip | jq -r 'to_entries[] | "\(.value)"')
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
if [ "$IP" == "$UPDIP" ]; then
echo "$DATUM KEIN UPDATE - Aktuelle IP= $UPDIP"
echo "$DATUM KEIN UPDATE - Aktuelle IP=$UPDIP"
else
echo "$DATUM UPDATE !!! ..."
echo "$DATUM UPDATE !!! - Update IP= $IP - Alte-IP= $UPDIP"
echo "$DATUM UPDATE !!! - Update IP=$IP - Alte-IP=$UPDIP"
sleep 1
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 "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 AN IPV64.NET GESENDET"
echo "$DATUM UPDATE !!! - UPDATE IP=$IP AN IPV64.NET GESENDET"
else
echo "$DATUM UPDATE !!! - UPDATE IP= $IP NICHT GESENTET"
echo "$DATUM UPDATE !!! - UPDATE IP=$IP NICHT GESENTET"
fi
# curl -4sSL https://ipv64.net/update.php?key=${DOMAIN_KEY}=${DOMAIN_IPV64}&ip=<ipaddr>&ip6=<ip6addr>&output=min
# curl -4sSL https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&ip=<ipaddr>&ip6=<ip6addr>&output=min
fi
sleep 5
# Nachpruefung ob der DOMAIN Eintrag richtig gesetzt ist
@@ -34,30 +34,30 @@ function CHECK_A_DOMAIN() {
DATUM=$(date +%Y-%m-%d\ %H:%M:%S)
UPDIP=$(cat $PFAD/updip.txt)
# 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 https://ipv64.net/update.php?howismyip | jq -r 'to_entries[] | "\(.value)"')
IP=$(curl -4ssL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/update.php?howismyip" | jq -r 'to_entries[] | "\(.value)"')
# DOMAIN_CHECK=$(dig +short ${DOMAIN_IPV64} A @ns1.ipv64.net)
DOMAIN_CHECK=$(for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do dig +short ${DOMAIN} A @ns1.ipv64.net; done | tail -n 1)
sleep 1
if [ "$IP" == "$DOMAIN_CHECK" ]; then
# echo "$DATUM CHECK - 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 CHECK - DOMAIN HAT DEN A-RECORD= `dig +noall +answer ${DOMAIN} A @ns1.ipv64.net`"; done
# echo "$DATUM CHECK - 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 CHECK - DOMAIN HAT DEN A-RECORD=`dig +noall +answer ${DOMAIN} A @ns1.ipv64.net`"; done
else
echo "$DATUM UPDATE !!! ..."
echo "$DATUM UPDATE !!! - NACHEINTRAG DIE IP WIRD NOCH EINMAL GESETZT"
echo "$DATUM UPDATE !!! - Update IP= $IP - Alte-IP= $UPDIP"
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 "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 AN IPV64.NET GESENDET"
echo "$DATUM UPDATE !!! - UPDATE IP=$IP AN IPV64.NET GESENDET"
else
echo "$DATUM UPDATE !!! - UPDATE IP= $IP NICHT GESENTET"
echo "$DATUM UPDATE !!! - UPDATE IP=$IP NICHT GESENTET"
fi
# curl -4sSL https://ipv64.net/update.php?key=${DOMAIN_KEY}=${DOMAIN_IPV64}&ip=<ipaddr>&ip6=<ip6addr>&output=min
# 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
# 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

View File

@@ -12,9 +12,33 @@ trap 'cleanup' SIGTERM
echo -n "" > /var/log/cron.log
sleep 10
echo "================================ START DDNS UPDATER IPV64.NET ================================"
if [[ "${DOMAIN_PRAEFIX_YES}" =~ (YES|yes|Yes) ]] ; then
if [ -z "${DOMAIN_PRAEFIX:-}" ] ; then
echo "$DATUM PRAEFIX - Sie haben kein DOMAIN PRAEFIX gesetzt, schauen die unter https://ipv64.net/dyndns.php nach bei Domain"
exit 1
else
echo "$DATUM PRAEFIX - Sie haben ein DOMAIN PRAEFIX gesetzt"
fi
if [ -z "${DOMAIN_IPV64:-}" ] ; then
echo "$DATUM DOMAIN - Sie haben keine DOMAIN gesetzt, schauen die unter https://ipv64.net/dyndns.php nach bei Domain"
exit 1
else
echo "$DATUM DOMAIN - Sie haben eine DOMAIN gesetzt"
for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do echo "$DATUM DOMAIN - Deine DOMAIN mit PRAEFIX ${DOMAIN_PRAEFIX}.${DOMAIN}"; done
fi
else
if [ -z "${DOMAIN_IPV64:-}" ] ; then
echo "$DATUM DOMAIN - Sie haben keine DOMAIN gesetzt, schauen die unter https://ipv64.net/dyndns.php nach bei Domain"
exit 1
else
echo "$DATUM DOMAIN - Sie haben eine DOMAIN gesetzt"
# echo "$DATUM DOMAIN - Deine DOMAIN $DOMAIN_IPV64"
for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do echo "$DATUM DOMAIN - Deine DOMAIN ${DOMAIN}"; done
fi
fi
if [ -z "${DOMAIN_KEY:-}" ] ; then
echo "$DATUM DOMAIN KEY - Sie haben keinen DOMAIN Key gesetzt, schauen die unter https://ipv64.net/dyndns.php nach bei DynDNS Updatehash"
exit 1
@@ -22,35 +46,88 @@ else
echo "$DATUM DOMAIN KEY - Sie haben einen DOMAIN Key gesetzt"
fi
if [ -z "${DOMAIN_IPV64:-}" ] ; then
echo "$DATUM DOMAIN - Sie haben keine DOMAIN gesetzt, schauen die unter https://ipv64.net/dyndns.php nach bei Domain"
exit 1
else
echo "$DATUM DOMAIN - Sie haben eine DOMAIN gesetzt"
# echo "$DATUM DOMAIN - Deine DOMAIN $DOMAIN_IPV64"
for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do echo "$DATUM DOMAIN - Deine DOMAIN $DOMAIN"; done
fi
if ! curl -sSL --fail https://ipv64.net/ > /dev/null; then
echo "$DATUM FEHLER !!! - 404 Sie haben kein Netzwerk oder Internetzugang"
exit 0
if ! curl -sSL --user-agent "${CURL_USER_AGENT}" --fail https://ipv64.net/ > /dev/null; then
echo "$DATUM FEHLER !!! - 404 Sie haben kein Netzwerk oder Internetzugang oder die Webseite ipv64.net ist nicht erreichbar"
exit 0
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)
# CHECK=$(curl -4sSL "https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&ip=$IP" | grep -o "success")
IP=$(curl -4ssL https://ipv64.net/update.php?howismyip | jq -r 'to_entries[] | "\(.value)"')
CHECK=$(curl -4sSL "https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&ip=${IP}&output=min")
IP=$(curl -4ssL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/update.php?howismyip" | jq -r 'to_entries[] | "\(.value)"')
function Domain_default() {
CHECK=$(curl -4sSL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&ip=${IP}&output=min")
# if [ "$CHECK" = "ok" ] ; then
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
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
else
echo "$DATUM FEHLER !!! - Die Angaben sind falsch gesetzt: DOMAIN oder DOMAIN KEY"
exit 1
fi
echo "${IP}" > /data/updip.txt
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 && 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
echo "$CRON_TIME_DIG" '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' >> /etc/cron.d/container_cronjob
}
function Domain_mit_praefix() {
CHECK=$(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 [[ "$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
else
echo "$DATUM FEHLER !!! - Die Angaben sind falsch gesetzt: DOMAIN mit PRAEFIX oder DOMAIN KEY"
exit 1
fi
echo "${CRON_TIME} /bin/bash /data/ddns-update-praefix.sh >> /var/log/cron.log 2>&1" > /etc/cron.d/container_cronjob
echo "$CRON_TIME_DIG" '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' >> /etc/cron.d/container_cronjob
}
function Domain_dkey() {
CHECK=$(curl -4sSL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/update.php?dkey=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&ip=${IP}&output=min")
if [[ "$CHECK" =~ (nochg|good|ok) ]] ; then
echo "$DATUM CHECK - Die Angaben sind richtig gesetzt: DOMAIN und DOMAIN KEY"
sleep 5
echo "$DATUM IP CHECK - Deine DOMAIN ${DOMAIN_IPV64} HAT DIE IP=`dig +short ${DOMAIN_IPV64} A @ns1.ipv64.net`"
else
echo "$DATUM FEHLER !!! - Die Angaben sind falsch gesetzt: DOMAIN oder DOMAIN KEY"
exit 1
fi
echo "${CRON_TIME} /bin/bash /data/ddns-update-dkey.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
}
function Domain_dkey_mit_praefix() {
CHECK=$(curl -4sSL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/update.php?dkey=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&praefix=${DOMAIN_PRAEFIX}&ip=${IP}&output=min")
if [[ "$CHECK" =~ (nochg|good|ok) ]] ; then
echo "$DATUM CHECK - Die Angaben sind richtig gesetzt: DOMAIN mit PRAEFIX und DOMAIN KEY"
sleep 5
echo "$DATUM IP CHECK - Deine DOMAIN mit PRAEFIX ${DOMAIN_PRAEFIX}.${DOMAIN_IPV64} HAT DIE IP=`dig +short ${DOMAIN_PRAEFIX}.${DOMAIN_IPV64} A @ns1.ipv64.net`"
else
echo "$DATUM FEHLER !!! - Die Angaben sind falsch gesetzt: DOMAIN mit PRAEFIX oder DOMAIN KEY"
exit 1
fi
echo "${CRON_TIME} /bin/bash /data/ddns-update-dkey-praefix.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 mit PRAEFIX ${DOMAIN_PRAEFIX}.${DOMAIN} HAT DIE IP=`dig +short ${DOMAIN_PRAEFIX}.${DOMAIN_IPV64} A @ns1.ipv64.net`" >> /var/log/cron.log 2>&1' >> /etc/cron.d/container_cronjob
}
if [[ "$DOMAIN_KEY_TYPE" =~ (dkey|DKEY|Dkey) ]] ; then
if [[ "$DOMAIN_PRAEFIX_YES" =~ (YES|yes|Yes) ]] ; then
Domain_dkey_mit_praefix
else
Domain_dkey
fi
else
if [[ "$DOMAIN_PRAEFIX_YES" =~ (YES|yes|Yes) ]] ; then
Domain_mit_praefix
else
Domain_default
fi
fi
echo "${IP}" > /data/updip.txt
sleep 2
/usr/bin/crontab /etc/cron.d/container_cronjob

View File

@@ -1,30 +1,39 @@
#!/usr/bin/env bash
DATUM=$(date +%Y-%m-%d\ %H:%M:%S)
set -e
if [[ "${DOMAIN_PRAEFIX_YES}" =~ (YES|yes|Yes) ]] ; then
if [ -z "${DOMAIN_PRAEFIX:-}" ] ; then
echo "$DATUM PRAEFIX - Sie haben kein DOMAIN PRAEFIX gesetzt, schauen die unter https://ipv64.net/dyndns.php nach bei Domain"
exit 1
else
echo "$DATUM PRAEFIX - Sie haben ein DOMAIN PRAEFIX gesetzt"
fi
if [ -z "${DOMAIN_IPV64:-}" ] ; then
echo "$DATUM DOMAIN - Sie haben keine DOMAIN gesetzt, schauen die unter https://ipv64.net/dyndns.php nach bei Domain"
exit 1
else
echo "$DATUM DOMAIN - Sie haben eine DOMAIN gesetzt"
for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do echo "$DATUM DOMAIN - Deine DOMAIN mit PRAEFIX ${DOMAIN_PRAEFIX}.${DOMAIN}"; done
fi
else
if [ -z "${DOMAIN_IPV64:-}" ] ; then
echo "$DATUM DOMAIN - Sie haben keine DOMAIN gesetzt, schauen die unter https://ipv64.net/dyndns.php nach bei Domain"
exit 1
else
echo "$DATUM DOMAIN - Sie haben eine DOMAIN gesetzt"
# echo "$DATUM DOMAIN - Deine DOMAIN $DOMAIN_IPV64"
for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do echo "$DATUM DOMAIN - Deine DOMAIN ${DOMAIN}"; done
fi
fi
if [ -z "${DOMAIN_KEY:-}" ] ; then
echo
echo "$DATUM DOMAIN KEY - Sie haben keinen DOMAIN Key gesetzt, schauen die unter https://ipv64.net/dyndns.php nach bei DynDNS Updatehash"
echo
exit 1
else
echo
echo "$DATUM DOMAIN KEY - Sie haben einen DOMAIN Key gesetzt"
echo
fi
if [ -z "${DOMAIN_IPV64:-}" ] ; then
echo
echo "$DATUM DOMAIN - Sie haben keine DOMAIN gesetzt, schauen die unter https://ipv64.net/dyndns.php nach bei Domain"
echo
exit 1
else
echo
echo "$DATUM DOMAIN - Sie haben eine DOMAIN gesetzt"
echo
echo "$DATUM DOMAIN - Deine DOMAIN $DOMAIN_IPV64"
fi
if ! curl -sSL --fail https://ipv64.net/ > /dev/null; then
echo "$DATUM FEHLER !!! - 404 Sie haben kein Netzwerk oder Internetzugang"
exit 1
if ! curl -sSL --user-agent "${CURL_USER_AGENT}" --fail https://ipv64.net/ > /dev/null; then
echo "$DATUM FEHLER !!! - 404 Sie haben kein Netzwerk oder Internetzugang oder die Webseite ipv64.net ist nicht erreichbar"
exit 0
fi

View File

@@ -4,7 +4,7 @@ services:
# build:
# dockerfile: ./Dockerfile
image: alcapone1933/ddns-ipv64:latest
# image: alcapone1933/ddns-ipv64:v0.0.5
# image: alcapone1933/ddns-ipv64:v0.0.8
container_name: ddns-ipv64
restart: always
# volumes:
@@ -17,8 +17,11 @@ services:
- "CRON_TIME_DIG=*/30 * * * *"
- "DOMAIN_IPV64=deine-domain.ipv64.net"
# - "DOMAIN_IPV64=deine-domain.ipv64.net,deine-domain.ipv64.de"
# - "DOMAIN_PRAEFIX_YES=yes"
# ⚠️ Nur ein Praefix verwenden ⚠️
# - "DOMAIN_PRAEFIX=ddns"
- "DOMAIN_KEY=1234567890abcdefghijklmn"
# - "DOMAIN_KEY_TYPE=dkey"
# volumes:
# data:
# name: ddns-ipv64_data