-=Petter=- Skrevet tirsdag kl 15:31 Del Skrevet tirsdag kl 15:31 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
mobile999 Skrevet tirsdag kl 15:59 Del Skrevet tirsdag kl 15:59 -=Petter=- skrev (26 minutter siden): API forklaring: https://api.domeneshop.no/docs/#tag/ddns 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? Lenke til kommentar
mobile999 Skrevet tirsdag kl 16:42 Del Skrevet tirsdag kl 16:42 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
-=Petter=- Skrevet tirsdag kl 17:25 Forfatter Del Skrevet tirsdag kl 17:25 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
mobile999 Skrevet tirsdag kl 18:27 Del Skrevet tirsdag kl 18:27 -=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
NULL Skrevet tirsdag kl 20:20 Del Skrevet tirsdag kl 20:20 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
oddeh Skrevet tirsdag kl 20:28 Del Skrevet tirsdag kl 20:28 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
Håvard Skrevet tirsdag kl 20:53 Del Skrevet tirsdag kl 20:53 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
-=Petter=- Skrevet i går, 07:32 Forfatter Del Skrevet i går, 07:32 mobile999 skrev (På 21.1.2025 den 19.27): 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 Tusen hjertelig takk. Denne ser ut til å fungere. Den oppdaterte IP til Domeneshop, så da er vi på god vei. Kode jeg fikk tilbake var: StatusCode : 204 StatusDescription : No Content Content : {} RawContent : HTTP/1.1 204 No Content Connection: keep-alive Date: Thu, 23 Jan 2025 07:19:54 GMT Server: nginx Headers : {[Connection, keep-alive], [Date, Thu, 23 Jan 2025 07:19:54 GMT], [Server, nginx]} RawContentLength : 0 Om dette er riktig eller ikke, kan ikke jeg svare på 🙂 Takk igjen. Lenke til kommentar
-=Petter=- Skrevet i går, 07:41 Forfatter Del Skrevet i går, 07:41 NULL skrev (På 21.1.2025 den 21.20): 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) oddeh skrev (På 21.1.2025 den 21.28): 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. Håvard skrev (På 21.1.2025 den 21.53): 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. Høres jo genialt ut, for å ikke kjøre for hardt mot serveren til Domene shop. Prøve å Google litt på det og se om jeg kan klare å skjønne det også. 🙃 Lenke til kommentar
NULL Skrevet i går, 07:49 Del Skrevet i går, 07:49 5 minutes ago, -=Petter=- said: Høres jo genialt ut, for å ikke kjøre for hardt mot serveren til Domene shop. Prøve å Google litt på det og se om jeg kan klare å skjønne det også. 🙃 Prøv f.eks. ChatGPT for å lage koden basert på beskrivelse. Såklart, en god prompt her vil være sentralt og kan kreve litt forståelse i utgangspunktet. Lenke til kommentar
NULL Skrevet i går, 08:00 Del Skrevet i går, 08:00 Husk ellers at du kanskje også ønsker IPv6-støtte for dette? Lenke til kommentar
-=Petter=- Skrevet i går, 08:16 Forfatter Del Skrevet i går, 08:16 NULL skrev (21 minutter siden): Prøv f.eks. ChatGPT for å lage koden basert på beskrivelse. Såklart, en god prompt her vil være sentralt og kan kreve litt forståelse i utgangspunktet. NULL skrev (11 minutter siden): Husk ellers at du kanskje også ønsker IPv6-støtte for dette? Skal prøve ChatGPT, brukt det litt før. Prøvde også til selve håndteringen av oppdateringen. Men det scriptet virket veldig mye mer komplekst enn det som jeg fikk over her. Forståelsen min er ikke veldig god da det gjelder scripting, skal prøve å se hva ChatGPT kan hjelpe til med. Oppdateringen ser i hvert fall ut til å fungere. Og det er pr nå det viktigste. Lenke til kommentar
mobile999 Skrevet i går, 12:09 Del Skrevet i går, 12:09 -=Petter=- skrev (3 timer siden): Oppdateringen ser i hvert fall ut til å fungere. Og det er pr nå det viktigste. 👍 Scriptet kan utvides med en sjekk om alt er i orden før evt. oppdatering av ddns. Nåværende dns oppføring kan sammenlignes med nåværende ipadresse. Noe slik (utestet): Sitat $current_ip = Invoke-WebRequest ifconfig.me/ip).Content.Trim() $records = Resolve-DnsName -Name example.com -Type A if ($curren_ip -ne $records[0].IPAddress) { <oppdater ddns> } Så kan man legge til sjekk om ipconfig.me er nede, alternativer og bla,bla,bla... Vet du at cloudflare har gratis ipv6 gateway slik at du kan slippe ddns? 1 Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå