Gå til innhold
Trenger du hjelp med internett og nettverk? Still spørsmål her ×

Domeneshop DDNS API, oppsett av server for oppdatering av IP


Anbefalte innlegg

Prøver å sette opp DDNS via api’et til Domeneshop.no. Klarer ikke finne ut av dette i det hele tatt.

Grunnen til å gjøre dette, er for å komme bort fra no-ip.com og disse gratis tjenestene.

 

Koding og slikt som dette, har jeg ikke gjort stort av. Prøvd å google en del, men klarer ikke skjønne dette i det hele tatt. Ikke klart og finne eksempler for hvordan løse dette, da jeg ikke skjønner eksemplene i deres API beskrivelse en gang. ☹️

 

Er det noen her som brukt dette via Domeneshop.no og er villig til å hjelpe meg?

 

Er ingen superbruker, men har satt opp Reverse Proxy, for sikkerheten, så dette skal være i boks.  Jeg har også ordnet meg "token" og "secret" for å kunne utføre dette.

Jeg vil som sagt bort fra alle disse gratis tjenestene, så jeg har ikke lyst til å videresende mitt domene til et annet. Da blir liksom litt av poenget borte. 

 

Server kjøres på en Win11 maskin.

 

API forklaring:

https://api.domeneshop.no/docs/#tag/ddns

 

Domeshop på GitHub:

https://github.com/domeneshop/


 

Petter

Lenke til kommentar
Videoannonse
Annonse

Okey, du kan bruke et powershell-script på Windows 11 serveren for å oppdatere ddns. Du må sette opp Task Scheduler til å kjøre det med jevne mellomrom.

Powershell-script forslag:

$Request_uri = "https://{token}:{secret}@api.domeneshop.no/v0/dyndns/update?hostname=example.com&myip="+(Invoke-WebRequest ifconfig.me/ip).Content.Trim()
Invoke-WebRequest -uri $Request_uri

 

Lenke til kommentar
mobile999 skrev (1 time siden):

Dette kan brukes på routere med ddns funksjonalitet. Jeg ser ikke noe ddns relevant på GitHub linken.

Hvilke routere har du som kan ha ddns funksjonalitet?

D-Link Covr 2200, har ikke klart og finne denne muligheten på dette mesh systemet....

mobile999 skrev (36 minutter siden):

Okey, du kan bruke et powershell-script på Windows 11 serveren for å oppdatere ddns. Du må sette opp Task Scheduler til å kjøre det med jevne mellomrom.

Powershell-script forslag:

$Request_uri = "https://{token}:{secret}@api.domeneshop.no/v0/dyndns/update?hostname=example.com&myip="+(Invoke-WebRequest ifconfig.me/ip).Content.Trim()
Invoke-WebRequest -uri $Request_uri

 

Når jeg legger inn mitt token/secret (prøvd både med og uten {} ) og byttet til mitt host name får jeg bare error:

PS C:\> .\DDNS.ps1
Invoke-WebRequest : {"code": "request:headerMissing", "help": "See documentation at https://api.domeneshop.no/docs/"}
At C:\DDNS.ps1:2 char:1
+ Invoke-WebRequest -uri $Request_uri
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebExc
   eption
    + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand

Kan det være dette med

"$Request uri" og "+(Invoke-WebRequest ifconfig.me/ip).Content.Trim()
Invoke-WebRequest -uri" 

Eller er dette der for å få det til å fungere i det hele tatt?

Unnskyld for rare spm, men prøver å lære litt i samme slengen 🙂

Lenke til kommentar
-=Petter=- skrev (59 minutter siden):

Kan det være dette med

"$Request uri" og "+(Invoke-WebRequest ifconfig.me/ip).Content.Trim()
Invoke-WebRequest -uri"

iwr takler ikke url'en.

I mitt hode skal følgende fungere, men jeg får ikke testet. Du må bytte ut token, secret og example.com med "ditt".

$user = 'token'
$pass = 'secret'
$pair = "$($user):$($pass)"
$encodedCreds = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($pair))
$basicAuthValue = "Basic $encodedCreds"
$Headers = @{
	Authorization = $basicAuthValue
}
$Request_uri = "https://api.domeneshop.no/v0/dyndns/update?hostname=example.com&myip="+(Invoke-WebRequest ifconfig.me/ip).Content.Trim()
Invoke-WebRequest -Uri $Request_uri -Headers $Headers

 

Lenke til kommentar
3 hours ago, mobile999 said:

Okey, du kan bruke et powershell-script på Windows 11 serveren for å oppdatere ddns. Du må sette opp Task Scheduler til å kjøre det med jevne mellomrom.

Powershell-script forslag:

$Request_uri = "https://{token}:{secret}@api.domeneshop.no/v0/dyndns/update?hostname=example.com&myip="+(Invoke-WebRequest ifconfig.me/ip).Content.Trim()
Invoke-WebRequest -uri $Request_uri

 

I utgangspunktet ville jeg vel lagt opp til et skript som kun bruker API-et når IP-adressen endrer seg. F.eks. med at man gjør et oppslag mot ipconfig.me, ser det opp i mot IP-en man hadde fra forrige kall mot tjenesten, og så evt. gjør operasjon mot Domeneshop sitt API om IP har endret seg.

I tilfelle ifconfig.me er nede, ville jeg vel også ha lagt inn en sekundær kilde til IP-adresse. Dette trenger nødvendigvis ikke være en webserver, men en del DNS-servere har også mulighet til å returnere ip-adressen som spør (eks. prøv nslookup myip.opendns.com resolver1.opendns.com)

 

 

Lenke til kommentar
NULL skrev (6 minutter siden):

I utgangspunktet ville jeg vel lagt opp til et skript som kun bruker API-et når IP-adressen endrer seg. F.eks. med at man gjør et oppslag mot ipconfig.me, ser det opp i mot IP-en man hadde fra forrige kall mot tjenesten, og så evt. gjør operasjon mot Domeneshop sitt API om IP har endret seg.

I tilfelle ifconfig.me er nede, ville jeg vel også ha lagt inn en sekundær kilde til IP-adresse. Dette trenger nødvendigvis ikke være en webserver, men en del DNS-servere har også mulighet til å returnere ip-adressen som spør (eks. prøv nslookup myip.opendns.com resolver1.opendns.com)

 

 

Jeg har gjort akkurat dette, men da må man enten hardkode nåværende ip-adresse og manuelt oppdatere denne ved endring (en mail kan f.eks. varsle om dette), eller at nåværende ip-adresse lagres på disk på et vis og leses/oppdateres av skriptet selv.

Lenke til kommentar
oddeh skrev (21 minutter siden):

Jeg har gjort akkurat dette, men da må man enten hardkode nåværende ip-adresse og manuelt oppdatere denne ved endring (en mail kan f.eks. varsle om dette), eller at nåværende ip-adresse lagres på disk på et vis og leses/oppdateres av skriptet selv.

Lag skriptet så det sjekker hvilke IP domenet peker til når det kjører, sjekk opp i mot f.eks ifconfig.co, hvis det er missmatch så oppdater via APIet? Sett opp en cronjob til å kjøre det med passende intervall.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...