Allra först måste ni skapa records i DNS för de zoner som ni vill uppdatera med DynDNS. Om ni t.ex vill uppdatera "hemma.exempel.com" med DynDNS, då måste ni först skapa ett A record för "hemma.exempel.com" i DNS. Det gör ni via ert Kundkonto. Ni måste då ange en IP adress. Om ni inte vet vilken IP adress ni skall ange kan ni ange en dummy adress typ 192.168.1.120.
Många routrar har en funktion som automatiskt uppdaterar ens dynamisk IP adress hos något DNS system. Tyvärr är det få routrar som stödjer det system som vi använder. Finns det ett Custom alternativ, då går det i regel att lösa.
Att sätta den dynamiska IP adressen i vårt system är enkelt. Allt som behövs är ett http anrop:
https://konto.registrera-doman.se/SetDNSHost.php?hostname=namn&zone=domän&DomainPassword=lösenord&Address=IP&output=json&hashed=0
hostname: Obligatorisk. Det datornamn nu vill sätta. Om ni t.ex. vill sätta hemma.foo.com, då anger ni hemma som hostname.
zone: Obligatorisk. Det aktuella domännamnet, t.ex. domänen foo.com.
DomainPassword: Obligatorisk. Lösenordet ni har satt för Dynamisk DNS i vår kontrollpanel.
Address: Valfri. Den IP adress som zonen skall sättas till. Denna behöver ni inte sätta. Sätter ni den inte, då kommer den IP adress som ni kommer ifrån att sättas.
output: Valfri. Anger vilket format som resultatet av ert anrop kommer att visas med. Följande alternativ finns, "json", "html" och "raw". Standard är "json" om output inte anges.
hashed: Valfri. DomainPassword kan skickas som en hash för extra säkerhet. Värde 1 anger att lösenordet är hashat. Alla system stödjer inte detta:
DynDNS med registrering av domän: Stödjer hashat lösenord. sha1 skall användas för hash.
DynDNS separat tjänst: Stödjer inte hashat lösenord.
Med hjälp av denna information kan ni prova er fram hur ni kan konfigurera er router så att det fungerar.
Några exempel
Sätt IP adress 192.168.1.344 för hemma.exempel.com:
https://konto.registrera-doman.se/SetDNSHost.php?hostname=hemma&zone=exempel.com&DomainPassword=lösenord&Address=192.168.1.344
Sätt samma IP adress som den dator du utför kommandot från för hemma.exempel.com. Detta är det bästa kommandot att använda om man sitter hemma och utför det. hemma.exempel.com får då samma IP adress som ni har fått av er internetleverantör:
https://konto.registrera-doman.se/SetDNSHost.php?hostname=hemma&zone=exempel.com&DomainPassword=lösenord
Om ni vill sätta IP adressen för domänen exempel.com, ange då nedanstående
https://konto.registrera-doman.se/SetDNSHost.php?hostname=@&zone=exempel.com&DomainPassword=lösenord
Loggar
Det går att hämta loggar som era kommandon genererat. När ni utför ett kommando för att uppdatera en IP adress, då får ni ett resultat typ som denna:
I detta exempel har er begäran köats, det tar upp till 5 minuter innan den utförs. Ni ser också på log raden en url där ni kan hämta loggar på era tidigare anrop. Ni kan då se om det har gått bra tidigare eller om det är något som gått fel.
Ett exempel hur det kan se ut (med output=raw)
Om loggen inte returnerar något resultat, vänta då 5 minuter och prova igen.
Spara url'en till loggarna. Det är samma url för samtliga era anrop för denna fqdn.
Hjälp
Ni kan få hjälp genom att ange följande:
https://konto.registrera-doman.se/SetDNSHost.php?action=help
VIKTIGT
Om ni får felmeddelandet att fel lösenord har angivits, kontrollera då först att ni verkligen använder rätt lösenord. Det lösenord ni skall använda är speciellt för DynDNS. Ni skall INTE använda lösenordet för t.ex. kundkontot. Lösenordet för DynDNS sätter ni explicit genom att logga in till ert kundkonto, gå till den aktuella tjänsten för DynDNS (alternativt till domänadministration om DynDNS ingår med domänregistreringen).
För vissa domäner syns DynDNS lösenordet i Kundportalen:
Medans för andra syns inte lösenordet. Har ni då glömt bort lösenordet då behöver ni sätta ett nytt.
Automatisk SetDNSHOST
Exempel
Enkelt exempel ni kan utgå från. Scriptet är basalt med i princip inga felkontroller. Scriptet är också skrivet för Linux/Unix och Mac. Detta skript kan inte användas för sin egen router, detta skall användas på en Linux/Unix/Mac dator. Möjligen går det numera att använda på WIndows om dess Linux WSL är installerat, se Microsofts documentation här.
#!/bin/sh
#set -x
# Simple shell script to set DynDNS for a zone.
# Run this script hourly from cron on a Linux/MacOS computer
# Can be run on windows computer with WSL installed: https://docs.microsoft.com/en-us/windows/wsl/
#
# Documentation: https://kunder.support/knowledgebase/246/Hur-kan-jag-uppdatera-min-IP-adress-genom-min-router.html
#
#
# INSTALL:
#
# Option 1:
# Install as root. Copy script to /etc/cron.hourly.
#
# Option 2:
#
# Install as user. Add script to users cron:
#
# create script in home directory
# crontab -e
# 30 * * * * /bin/sh $HOME/dyndns.sh
#
# Please change 30 to something else, 0-60 to not overload the server.
###################################################################
#
# Edit here.
#
hostname=hemma
zone=exempel.se
password=xxxxxxxxxxx
# Must be rw for the user running the script.
# Put in home dir if script is run as non-root
workdir=$HOME
#workdir=/usr/local/etc
# json, html och raw
output=raw
# Set to 1 if pw will be sent hashed. See FAQ page.
# Not supported by all services.
hashed=0
##################################################################
#
# Do not change anything below
#
##################################################################
dnsipfile=$workdir/dnsip.dyndns-$hostname.$zone
logfile=$workdir/dnsip.dyndns-$hostname.$zone.log
tmpf=/tmp/dyndns.$$
#
# Check for curl/wget
#
if type curl > /dev/null
then
mycurl="curl -s"
elif type wget > /dev/null
then
mycurl="wget -q -O-"
else
echo "Error: Neither curl nor wget found"
exit
fi
curip=`$mycurl https://kunder.support/whatismyipaddress.php`
if test -f $dnsipfile
then
# file exists and hence ip has been set
dnsip=`cat $dnsipfile`
if test "$curip" = "$dnsip"
then
# No change, exit
exit
fi
# IP has changed, update DNS
fi
$mycurl "https://konto.registrera-doman.se/SetDNSHost.php?hostname=$hostname&zone=$zone&DomainPassword=$password&output=$output&hashed=$hashed" > $tmpf
if test -s $tmpf
then
date >> $logfile
cat $tmpf >> $logfile
fi
if grep -qv error $tmpf
then
echo -n $curip > $dnsipfile
elif grep -q "already points to IP" $tmpf
then
echo -n $curip > $dnsipfile
fi
rm -f $tmpf
#cat $logfile