From 9e301cf5d7d97e153333ffd9d9e2f5a8b3673aa5 Mon Sep 17 00:00:00 2001 From: MJ Antipode Date: Thu, 19 Dec 2024 13:55:11 +0100 Subject: [PATCH] Ajouter scripts/Update_DDNS_OVH.ps1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From https://raw.githubusercontent.com/zazazouthecat/update_DDNS_OVH/main/update_DDNS_OVH.ps1 Commande à planifier : powershell -Noninteractive -Noprofile -ExecutionPolicy ByPass -Command "C:\WORKDIR\Update_DDNS_OVH.ps1" --- scripts/Update_DDNS_OVH.ps1 | 78 +++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 scripts/Update_DDNS_OVH.ps1 diff --git a/scripts/Update_DDNS_OVH.ps1 b/scripts/Update_DDNS_OVH.ps1 new file mode 100644 index 0000000..e75c271 --- /dev/null +++ b/scripts/Update_DDNS_OVH.ps1 @@ -0,0 +1,78 @@ +############################### +## Script Update_DDNS_OVH.ps1 +## Auth : The Nerd Cat +## Date : 09/2021 +################################ + +# Variables - Script +$WORK_DIR="C:\WORKDIR" + +# Variables - OVH +$LOGIN_OVH = "LOGIN_OVH" +$PWD_OVH = "PASSWORD_OVH" +$URL_OVH = "DDNS.MYWEBSITE.COM" + +# Variables - IP Wan +$url = "http://ifconfig.me/ip" +$webclient = new-object System.Net.WebClient +$WANIP = [IPAddress]$webclient.DownloadString($url) + +# Variables - Crendenital OVH +$securepasswd = ConvertTo-SecureString $PWD_OVH -AsPlainText -Force +$cred = New-Object System.Management.Automation.PSCredential($LOGIN_OVH, $securepasswd) +$wc = New-Object system.Net.WebClient; +$credCache = new-object System.Net.CredentialCache +$creds = new-object System.Net.NetworkCredential($LOGIN_OVH,$PWD_OVH) + +# Regex IP +$pattern = "^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$" + + + +# On Vérifie l'espace de travail +if(Test-Path $WORK_DIR){ + Write-Host "L'espace de travail ok" +}else{ + Write-Host "L'espace de travail n'existe pas" + # Création de l'espace de travail + New-Item $WORK_DIR -itemType Directory + + New-Item -Path $WORK_DIR\maj_ip.txt -ItemType File + echo '0.0.0.0' | Out-File -FilePath $WORK_DIR\maj_ip.txt -Encoding ASCII -Force + +} + +# On Vérifie que le format ip récupéré est correct +If ($WANIP -match $pattern) +{ + # On essaye d'accéder au fichier maj_ip.txt + Try { Get-ChildItem $WORK_DIR\"maj_ip.txt" -ErrorAction Stop > $null } + # Si il existe, on récupère l'ip déjà présente dans le fichier maj_ip.txt + Catch { Write-Output $WANIP > $WORK_DIR\maj_ip.txt } + [IPAddress]$IP = Get-Content $WORK_DIR\maj_ip.txt + # On check si l'adresse ip a changée, Inutile d'appeler la page web OVH toutes les X minustes si l'ip est inchangée. + If ([IPAddress]$WANIP -eq [IPAddress]$IP) + { + Write-Host "Votre adresse ip n'a pas changée." + } + Else + { + Write-Host "** Votre adresse ip à changée **" + Write-Host "Mise à jour de votre nouvelle ip chez OVH" + + $credCache.Add("https://${LOGIN_OVH}:${PWD_OVH}@www.ovh.com/nic/update?myip=${WANIP}&hostname=${URL_OVH}&system=dyndns", "Basic", $creds) + $wc.Credentials = $credCache + $majurl="https://${LOGIN_OVH}:${PWD_OVH}@www.ovh.com/nic/update?myip=${WANIP}&hostname=${URL_OVH}&system=dyndns" + write-host $majurl + $wc.downloadString($majurl) + + # On enregistre la nouvelle ip dans le fichier maj_ip.txt + Write-Output $WANIP.IPAddressToString > $WORK_DIR\maj_ip.txt + + } +} +Else +{ + # Problème avec le format d'ip récupéré + Write-Host "Impossible de récupérer votre adresse IP Public" +}