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:
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>| Param | Hvor | Beskrivelse |
|---|---|---|
hostname | query | FQDN, eller kommaseparert liste med FQDN-er. |
myip | query (valgfri) | IPv4 som skal settes. Utelates den, brukes kilde-IP-en til klienten. |
myipv6 | query (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.
| Kode | Betydning |
|---|---|
good 1.2.3.4 | Oppdatert (IP-en sendes tilbake). |
nochg 1.2.3.4 | Ingen endring nødvendig, posten peker allerede på den IP-en. |
nohost | Vertsnavnet ligger ikke i en sone på denne kontoen, sonen bruker eksterne navneservere, eller API-nøkkelen har ikke tilgang til sonen. |
notfqdn | Ugyldig eller manglende vertsnavn. |
badauth | API-nøkkelen eller brukeren har bare lesetilgang til DNS. |
dnserr | Intern serverfeil under oppdateringen. |
badagent | Ugyldig IP oppgitt. |
curl-eksempler
# 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.noSynology DSM
Control Panel → External Access → DDNS → Add, sett Service Provider til Customized og konfigurer:
| Felt | Verdi |
|---|---|
| Query URL | https://api.gigahost.no/api/v0/dns/dyndns?hostname=__HOSTNAME__&myip=__MYIP__ |
| Username | E-postadressen din hos Gigahost |
| Password | Passordet ditt hos Gigahost |
| Hostname | home.example.no |
QNAP QTS / QuTS hero
Network & Virtual Switch → DDNS → Customized:
| Felt | Verdi |
|---|---|
| URL | https://api.gigahost.no/api/v0/dns/dyndns?hostname=%HOST%&myip=%IP% |
| Username | E-postadressen din hos Gigahost |
| Password | Passordet ditt hos Gigahost |
| Hostname | home.example.no |
Vanlig hjemmeruter
Under "User-defined" eller "Custom" Dynamic DNS:
| Felt | Verdi |
|---|---|
| Server / URL | api.gigahost.no |
| Path | /api/v0/dns/dyndns |
| Protocol | dyndns2 |
| Username | E-postadressen din hos Gigahost |
| Password | Passordet ditt hos Gigahost |
| Hostname | home.example.no |
OPNsense / pfSense
Services → Dynamic DNS → legg til en oppføring:
| Felt | Verdi |
|---|---|
| Service type | Custom |
| Update URL | https://api.gigahost.no/api/v0/dns/dyndns?hostname=%h&myip=%i |
| Username | E-postadressen din hos Gigahost |
| Password | Passordet ditt hos Gigahost |
| Hostname | home.example.no |
MikroTik 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
