IP-Adresse aus einer DynDns (dynamischen DNS) auslesen

Diese zwei Funktionen in Powershell  liefern die IP-Adresse aus einer dynamischen DNS. Voraussetzung ist dass z.B. ein Router bei einem Reconnect dem DynDNS-Anbieter die aktuelle IP mitteilt.
Die Skripte teilen die IP nicht dem DynDNs-Anbieter mit!

Diese Funktion liefert durch das Cmdlet Test-Connection IP-Adresse aus einem DynDns-Namen.

# Löst die IP-Adresse aus einem DynDns-Namen auf
Function GET-IPFromDynDns() {
  [CmdletBinding()]
  Param (
    [Parameter(Mandatory=$false,Position=0)]
    [string]$DynDNS 
  )

  $PingResult = Test-Connection -ComputerName $DynDNS -Count 1
  #$return = $PingResult.ProtocolAddress
  $return = $PingResult.IPV4Address.IPAddressToString
  $return
}


Die 2. Funktion liefert via Ping-Befehl die IP-Adresse aus einem DynDns-Namen.

Function GET-IPFromDynDns() {
  [CmdletBinding()]
  Param (
    [Parameter(Mandatory=$false,Position=0)]
    [string]$DynDNS 
  )
  $PingResult = (ping -n 1 $DynDNS)
  if ($PingResult -is [array]) {
    $b = $PingResult[1].LastIndexOfAny("[")+1
    $c = $PingResult[1].LastIndexOfAny("]")
    $Result = $PingResult[1].substring($b, $c - $b)
    $Result
  } else {
    Write-Host $DynDNS "konnte nicht aufgelöst werden!"
 }
}

# Aufruf der Funktion. (Auch mit anderen DynDns-Diensten möglich ;-)
$ip = GET-IPFromDynDNS  "meinesubdomain.dyndns.org"