diff --git a/ddns.sh b/ddns.sh
new file mode 100755
index 0000000..c5106f7
--- /dev/null
+++ b/ddns.sh
@@ -0,0 +1,22 @@
+#!/bin/bash
+
+DOMAIN="geek-blog.de"
+
+
+
+SCRIPTPATH="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"
+
+WAN_IP=$(${SCRIPTPATH}/easyBoxCtrl.sh wan ip 2>/dev/null)
+echo "Current WAN-IP -----------> ${WAN_IP}"
+
+DNS_IP=$(dig +short ${DOMAIN})
+echo "Current DNS entry for ----> ${DNS_IP}"
+
+if [ "${WAN_IP}" == "${DNS_IP}" ]; then
+ echo "IPs match - nothing to do."
+ exit 0
+else
+ echo "IP mismatch - trying to update A-record(s)..."
+ USERNAME="TODO" PASSWORD="TODO" $SCRIPTPATH/unitedDomainsCtrl.sh geek-blog.de ${WAN_IP}
+ USERNAME="TODO" PASSWORD="TODO" $SCRIPTPATH/unitedDomainsCtrl.sh *.geek-blog.de ${WAN_IP}
+fi
diff --git a/unitedDomainsCtrl.sh b/unitedDomainsCtrl.sh
new file mode 100755
index 0000000..90f5da6
--- /dev/null
+++ b/unitedDomainsCtrl.sh
@@ -0,0 +1,152 @@
+#!/bin/bash
+# requires: wget, ca-certificates, grep, jq
+#rm -f /tmp/cookies.txt
+
+COOKIEFILE="/tmp/cookies.txt"
+
+#USERNAME=""
+#PASSWORD=""
+
+
+
+
+# fake user agent
+UA="Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:75.0) Gecko/20100101 Firefox/75.0"
+
+# * * * NO MORE CHANGES DOWN HERE * * *
+
+
+# parse parameters
+DOMAIN=$(echo $1 | sed -r 's/^.*\.(.+\..+)$/\1/')
+SUBDOMAIN=$(echo $1 | sed -r 's/^(.+)\..+\..+$/\1/')
+
+if [ "$DOMAIN" == "$SUBDOMAIN" ]; then
+ SUBDOMAIN=""
+fi
+
+echo "DOMAIN=${DOMAIN}"
+echo "SUBDOMAIN=${SUBDOMAIN}"
+
+IPV4=$2
+
+#################################################
+
+# GET LOGIN PAGE
+#csrf tokens for login + language xmlhttprequest required to login (nice try blocking my API access, UD)
+OUT=$(wget -U "$UA" \
+ --save-cookies $COOKIEFILE \
+ --keep-session-cookies \
+ -qO- "https://www.united-domains.de/login/")
+
+CSRF=$(echo "$OUT" | /bin/grep -oP -m 2 "(?<=)" | tail -1)
+echo "CSRF=${CSRF}"
+CSRFMETA=$(echo "$OUT" | /bin/grep -oP -m 1 "(?<=)")
+echo "CSRFMETA=${CSRFMETA}"
+CSRFSCRIPT=$(echo "$OUT" | /bin/grep -oP -m 1 "(?<=\"CSRF_TOKEN\":\")[^\"]*(?=\")")
+echo "CSRFSCRIPT=${CSRFSCRIPT}"
+
+wget -U "$UA" \
+ --load-cookies $COOKIEFILE \
+ --save-cookies $COOKIEFILE \
+ --keep-session-cookies \
+ --delete-after \
+ --post-data "language=en-US" \
+ --header="HTTP-X-CSRF-TOKEN: $CSRFMETA" \
+ --header="X-Csrf-Token: $CSRFSCRIPT" \
+ --header="X-Requested-With: XMLHttpRequest" \
+ -qO- "https://www.united-domains.de/set-user-language"
+
+
+# DO THE LOGIN
+echo 'login'
+OUT=$(wget -U "$UA" \
+ --load-cookies $COOKIEFILE \
+ --save-cookies $COOKIEFILE \
+ --keep-session-cookies \
+ --post-data "csrf=$CSRF&email=$USERNAME&pwd=$PASSWORD&selector=login&loginBtn=Login" \
+ -qO- "https://www.united-domains.de/login/")
+
+####################################################################################################
+# WE'RE IN
+
+# get domain list in order to determine the DOMAIN_ID for the given DOMAIN
+echo 'get domain list'
+OUT=$(wget -U "$UA" \
+ --load-cookies $COOKIEFILE \
+ --save-cookies $COOKIEFILE \
+ --keep-session-cookies \
+ -qO- 'https://www.united-domains.de/pfapi/dns/domain-list')
+if [ "$OUT" = "" ] ; then
+ echo "Login not successful"
+ exit 1
+else
+ # parse output for the DOMAIN_ID
+ DOMAIN_ID=$(echo "$OUT" | jq -cM --arg v "${DOMAIN}" '.data[] | select(.domain == $v) | .id')
+ echo "DOMAIN_ID=${DOMAIN_ID}"
+fi
+
+
+#get current dns record json object & modify ip
+echo "get current dns record json object"
+current=$(wget -U " $UA" \
+ --load-cookies $COOKIEFILE \
+ --save-cookies $COOKIEFILE \
+ --keep-session-cookies \
+ -qO- "https://www.united-domains.de/pfapi/dns/domain/$DOMAIN_ID/records")
+echo "CURRENT: $current"
+
+#record=$(echo $current |
+# jq -cM ".data.A | map(select(.id == $RECORD_ID)) | .[0]" | \
+# sed "s/ //g" | \
+# sed "s/\"address\":\"[0-9.]\+\"/\"address\":\"$ipv4\",\"formId\":${RECORD_ID}/g")
+
+
+RECORD_ID=$(echo $current | \
+ jq -cM --arg v "${SUBDOMAIN}" '.data.A | map(select(.sub_domain == $v)) | .[0].id')
+
+record=$(echo $current |
+ jq -cM --arg v "${SUBDOMAIN}" '.data.A | map(select(.sub_domain == $v)) | .[0]' | \
+ sed "s/ //g" | \
+ sed "s/\"address\":\"[0-9.]\+\"/\"address\":\"${IPV4}\",\"formId\":${RECORD_ID}/g")
+echo "NEW: $record"
+
+
+
+# load the DNS page for the given DOMAIN_ID to get the latest csrf code
+#dnspage=$(wget -U " $UA" \
+# --load-cookies $COOKIEFILE \
+# --save-cookies $COOKIEFILE \
+# --keep-session-cookies \
+# -qO- "https://www.united-domains.de/portfolio/a/domain-admin/dns/$DOMAIN_ID")
+
+#csrfscript=$(echo "$loginpage" | /bin/grep -oP -m 1 "(?<=\"CSRF_TOKEN\":\")[^\"]*(?=\")")
+#echo "csrfscript=${csrfscript}"
+
+
+#send changes
+echo "send changes"
+#echo -ne "PUT ${url}\n${payload}\n"
+
+PAYLOAD="{\"record\":$record,\"domain_lock_state\":{\"domain_locked\":false,\"email_locked\":false}}"
+OUT=$(wget -U " $UA" \
+ --load-cookies $COOKIEFILE \
+ --save-cookies $COOKIEFILE \
+ --keep-session-cookies \
+ --method=PUT \
+ --header="Accept: application/json" \
+ --header="Accept-Encoding: gzip, deflate, br" \
+ --header="Accept-Language: de-DE,de;q=0.8,en-US;q=0.5,en;q=0.3" \
+ --header="Content-Type: application/json;charset=utf-8" \
+ --header="Referer: https://www.united-DOMAINs.de/portfolio/a/DOMAIN-admin/dns/$DOMAIN_ID" \
+ --header="Origin: https://www.united-DOMAINs.de" \
+ --header="Http-X-Csrf-Token: $CSRFSCRIPT" \
+ --body-data=$PAYLOAD \
+ -O- "https://www.united-domains.de/pfapi/dns/domain/$DOMAIN_ID/records" 2>&1)
+echo "UD answered: $OUT"
+
+echo $OUT | /bin/grep "$IPV4" >/dev/null 2>&1
+
+SUCCESS=$?
+echo "Retval: $SUCCESS"
+
+exit $SUCCESS