Announcement

Collapse
No announcement yet.

[PowerShell] Strato DynDNS-Update mit PowerShell

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • [PowerShell] 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.

    Code:
    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 "[URL]https://dyndns.strato.com/nic/update?hostname=[/URL]$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:
    Code:
    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.
Working...
X