# 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"
    }
}
