From 286cd544c0e798bbca358d180e58da6f6c8b4e1d Mon Sep 17 00:00:00 2001 From: Christian Albers Date: Mon, 28 Oct 2024 08:31:33 +0100 Subject: [PATCH] =?UTF-8?q?updatedns.ps1=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- updatedns.ps1 | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 updatedns.ps1 diff --git a/updatedns.ps1 b/updatedns.ps1 new file mode 100644 index 0000000..7545a49 --- /dev/null +++ b/updatedns.ps1 @@ -0,0 +1,81 @@ +# IP-Adresse von dynamicdns.park-your-domain.com/getip abrufen +$ipServiceUrl = "https://dynamicdns.park-your-domain.com/getip" + +"=======================================" > "C:\beruflich\freedns\log.txt" + +Get-Date >> "C:\beruflich\freedns\log.txt" + +try { + $ipAddress = Invoke-RestMethod -Uri $ipServiceUrl + if (-not [string]::IsNullOrWhiteSpace($ipAddress)) { + "Aktuelle IP-Adresse: $ipAddress" >> "C:\beruflich\freedns\log.txt" + } else { + "Fehler: IP-Adresse konnte nicht abgerufen werden." >> "C:\beruflich\freedns\log.txt" + exit + } +} catch { + "Fehler beim Abrufen der IP-Adresse: $_" >> "C:\beruflich\freedns\log.txt" + exit +} + +$UpdateUrl = "https://dynv6.com/api/update" +$token = "holen auf https://dynv6.com/keys" + + +# DynDNS-Anbieter URLs und Anmeldedaten +$dyndnsProviders = @( + @{ + Hostname = "ca-bookmarks.dynv6.net" + }, + @{ + Hostname = "ca-ggg.dynv6.net" + }, + @{ + Hostname = "ca-git.dynv6.net" + }, + @{ + Hostname = "ca-gondor.dynv6.net" + }, + @{ + Hostname = "ca-gxbm.dynv6.net" + }, + @{ + Hostname = "ca-nct.dynv6.net" + }, + @{ + Hostname = "ca-nextcloud.dynv6.net" + }, + @{ + Hostname = "ca-notizen.dynv6.net" + }, + @{ + Hostname = "ca-paperless.dynv6.net" + }, + @{ + Hostname = "ca-passwort.dynv6.net" + }, + @{ + Hostname = "ca-projekte.dynv6.net" + }, + @{ + Hostname = "ca-rss.dynv6.net" + }, + @{ + Hostname = "ca-twitter.dynv6.net" + }, + @{ + Hostname = "cactus24.dynv6.net" + } +) + +# Durch jeden Anbieter iterieren und IP-Adresse aktualisieren +foreach ($provider in $dyndnsProviders) { + $updateUrlAufruf = "$($UpdateUrl)?zone=$($provider.Hostname)&ipv4=$ipAddress&ipv6=auto&token=$($token)" + #write-Host $updateUrlAufruf + try { + $response = Invoke-RestMethod -Uri $updateUrlAufruf -Method Get + "$($provider.Hostname) Update erfolgreich: $response" >> "C:\beruflich\freedns\log.txt" + } catch { + Write-Host "Fehler beim Aktualisieren von $($provider.Hostname): $_" >> "C:\beruflich\freedns\log.txt" + } +}