Skip to content

Dynamic DNS ​

GET /dns/dyndns oppdaterer A- og AAAA-postene for ett eller flere vertsnavn. Det snakker dyndns2, så rutere, NAS-enheter og skript kan bruke det.

Det er det eneste endepunktet som godtar HTTP Basic Auth med e-postadressen og passordet til kontoen, for enheter som ikke kan sende en Authorization: Bearer-header. Der klienten kan sette en header, bruker du en API-nøkkel som er begrenset til sonene den oppdaterer, slik at enheten aldri har kontopassordet ditt:

bash
curl -H "Authorization: Bearer $API_KEY" \
  "https://api.gigahost.no/api/v0/dns/dyndns?hostname=home.example.no"

En API-nøkkel eller en avgrenset bruker trenger lese- og skrivetilgang til DNS. Uten DNS-tilgang i det hele tatt svarer API-et 403 i JSON; med bare lesetilgang til DNS svarer det badauth. En nøkkel som er begrenset til utvalgte soner, svarer nohost for vertsnavn i andre soner.

Endepunkt ​

GET /dns/dyndns?hostname=<fqdn>&myip=<v4>&myipv6=<v6>
ParamHvorBeskrivelse
hostnamequeryFQDN, eller kommaseparert liste med FQDN-er.
myipquery (valgfri)IPv4 som skal settes. Utelates den, brukes kilde-IP-en til klienten.
myipv6query (valgfri)IPv6 som skal settes.

Postene får 60 sekunders TTL.

Feil brukernavn eller passord gir ingen dyndns-kode: API-et svarer HTTP 401 med en JSON-body. For mange feil sperrer nye forsøk til neste døgn (UTC) (se Grenser for innlogging).

Responskoder ​

Responsen er ren tekst, én linje per vertsnavn.

KodeBetydning
good 1.2.3.4Oppdatert (IP-en sendes tilbake).
nochg 1.2.3.4Ingen endring nødvendig, posten peker allerede på den IP-en.
nohostVertsnavnet ligger ikke i en sone på denne kontoen, sonen bruker eksterne navneservere, eller API-nøkkelen har ikke tilgang til sonen.
notfqdnUgyldig eller manglende vertsnavn.
badauthAPI-nøkkelen eller brukeren har bare lesetilgang til DNS.
dnserrIntern serverfeil under oppdateringen.
badagentUgyldig IP oppgitt.

curl-eksempler ​

bash
# Explicit IPv4
curl --user "[email protected]:your-password" \
  "https://api.gigahost.no/api/v0/dns/dyndns?hostname=home.example.no&myip=203.0.113.10"

# Auto-detect (uses your public source IP)
curl --user "[email protected]:your-password" \
  "https://api.gigahost.no/api/v0/dns/dyndns?hostname=home.example.no"

# IPv6
curl --user "[email protected]:your-password" \
  "https://api.gigahost.no/api/v0/dns/dyndns?hostname=home.example.no&myipv6=2001:db8::1234"

# Multiple hostnames in one call
curl --user "[email protected]:your-password" \
  "https://api.gigahost.no/api/v0/dns/dyndns?hostname=home.example.no,vpn.example.no&myip=203.0.113.10"

TIPS

URL-kod + og @ hvis de står i brukernavnet og det sendes gjennom en tredjepartsklient som legger påloggingsinformasjonen i URL-en: [email protected] blir you%2Btag%40example.com.

Klientoppsett ​

ddclient ​

/etc/ddclient.conf:

protocol=dyndns2
ssl=yes
server=api.gigahost.no/api/v0/dns
[email protected]
password='your-password'
home.example.no

Synology DSM ​

Control Panel → External Access → DDNS → Add, sett Service Provider til Customized og konfigurer:

FeltVerdi
Query URLhttps://api.gigahost.no/api/v0/dns/dyndns?hostname=__HOSTNAME__&myip=__MYIP__
UsernameE-postadressen din hos Gigahost
PasswordPassordet ditt hos Gigahost
Hostnamehome.example.no

QNAP QTS / QuTS hero ​

Network & Virtual Switch → DDNS → Customized:

FeltVerdi
URLhttps://api.gigahost.no/api/v0/dns/dyndns?hostname=%HOST%&myip=%IP%
UsernameE-postadressen din hos Gigahost
PasswordPassordet ditt hos Gigahost
Hostnamehome.example.no

Vanlig hjemmeruter ​

Under "User-defined" eller "Custom" Dynamic DNS:

FeltVerdi
Server / URLapi.gigahost.no
Path/api/v0/dns/dyndns
Protocoldyndns2
UsernameE-postadressen din hos Gigahost
PasswordPassordet ditt hos Gigahost
Hostnamehome.example.no

OPNsense / pfSense ​

Services → Dynamic DNS → legg til en oppføring:

FeltVerdi
Service typeCustom
Update URLhttps://api.gigahost.no/api/v0/dns/dyndns?hostname=%h&myip=%i
UsernameE-postadressen din hos Gigahost
PasswordPassordet ditt hos Gigahost
Hostnamehome.example.no

MikroTik RouterOS ​

routeros
/ip cloud set ddns-enabled=no

/system script add name=dyndns source={
  :local ipaddr [/ip address get [find interface=ether1] address]
  /tool fetch \
    url="https://api.gigahost.no/api/v0/dns/dyndns?hostname=home.example.no&myip=$ipaddr" \
    user="[email protected]" password="your-password" \
    mode=https dst-path=dyndns.txt
}

/system scheduler add name=dyndns-update interval=5m on-event=dyndns

Gigahost Docs

This site is currently in development.
Enter the password to continue.