Strato DynDNS-Update mit PowerShell

Wer bei Strato ein oder mehrere Domains sein eigen nennen darf und die Strato DynDNS-Funktion nutzt, kann mit einem simplen PowerShell-Script die IP-Adresse automatisiert aktualisieren.

function Update-StratoDDNS([string]$DomainName, [string]$Password){
    $pair = "${DomainName}:${Password}"
    $bytes = [System.Text.Encoding]::ASCII.GetBytes($pair)
    $base64 = [System.Convert]::ToBase64String($bytes)
    $basicAuthValue = "Basic $base64"
    $headers = @{ Authorization = $basicAuthValue }
    Invoke-WebRequest -uri "https://dyndns.strato.com/nic/update?hostname=$DomainName" -Headers $headers | Out-File "$PSScriptRoot\REPORT_$DomainName.txt"
 }

Diese PowerShell-Funktion nimmt zwei Argumente entgegen: „$DomainName“ beschreibt die Domain, dessen DNS-Eintrag mit der aktuellen IP-Adresse aktualisiert werden soll. „$Password“ ist das bei Strato hinterlegte Passwort, das für die Änderung der DNS-Einträge nötig ist. Dieses Passwort kann im Strato-Benutzerkonto festgelegt/geändert werden.
DomainName und Password werden zu einem String zusammengefügt, in bytes encodiert und anschließend nochmals mit Base64 encodiert. Das Ergebnis daraus wird dann in einen HTTP-Header gepackt und an die dyndns-URL gesendet. Die HTTP-Response wird dann anschließend in einer Text-Datei gespeichert, als eine Art Protokoll.

Ein DynDNS-Update kann dann mit einem Einzeiler pro Domain durchgführt werden:

 Update-StratoDDNS -DomainName "domain1.com" -Password "mysecretpassword1"
 Update-StratoDDNS -DomainName "domain2.net" -Password "mysecretpassword2"

Je nach Anwendungsfall kann man dieses PowerShell-Script dann zum Beispiel in den Windows Task Scheduler packen. Ich habe einen scheduled Task beispielsweise so eingerichtet, das alle 15 Minuten ein DynDNS-Update durchgeführt wird. Somit sind meine Domains quasi immer aktuell.

Die Idee zu diesem Script stammt übrigens von Tobias Wust! Den Original-Artikel findet ihr hier: https://wust.me/strato-dyndns-mit-powershell/. Ich habe mir erlaubt, dass Script in eine function zu verpacken und mit Parametern zu versehen.

2 comments on “Strato DynDNS-Update mit PowerShell

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert