Connaître l’adresse IP publique de votre Livebox

Connaître l'adresse IP publique de votre boxJe suis chez Orange et mon adresse IPv4 est amené à changer régulièrement, selon une cadence que j’ignore totalement. J’ai activé une prise de contrôle à distance de mon PC via OpenSSH (uniquement par clé) et Terminal Services. J’ai d’ailleurs changé les ports de ces deux services de manière à minimiser les risques d’intrusion ! ;+)

Les Services de type DynDNS

La LiveBox d’Orange propose d’utiliser différents services de type DynDNS :

Bref, rien ne me convient et, pour tout dire, je n’ai absolument pas envie de payer ce genre de services !

Le registrar pour l’IPv6

Comme les IPv6 fournies par Orange sont fixes, j’ai utilisé la zone DNS de mon domaine DSFC hébergé chez Gandi, en lui ajoutant une entrée de type AAAA.

DynDNS, un script PowerShell pour l’IPv4

Le script que je vous propose ci-dessous envoie votre adresse IP par mail. Il recourt à des API publiques qui vous permettent de récupérer votre adresse IPv4 ou IPv6 publique, au format JSON pour la plupart.  Je vous recommande de choisir des services en mode https.

Clear-Host
$ip=(Invoke-RestMethod -Uri 'https://ipinfo.io').ip
<#
#Ipv4 only
$ip=(Invoke-RestMethod -Uri 'https://api.ipify.org?format=json').ip
$ip=Invoke-RestMethod -Uri 'https://ipv4bot.whatismyipaddress.com'
$ip=(Invoke-RestMethod -Uri 'http://api.ipaddress.com/myip?format=json&callback=myCallback').ipaddress 
$ip=(Invoke-RestMethod -Uri 'http://ip-api.com/json').query
#IPv6 only
$ip=(Invoke-WebRequest -Uri 'https://ipv6bot.whatismyipaddress.com').content
#IPv4 or IPv6
$ip=(Invoke-WebRequest -Uri 'https://www.dsfc.net/ipinfo.php').content
#>
$CredUser = "votre_login"
$CredPassword = "votre_mot_de_passe"
$EmailFrom = "votre_login@gmail.com"
$EmailTo = "votre_login@gmail.com"
$Subject = "IPv4=$ip"
$Body = "IPv4=$ip"
$SMTPServer = "smtp.gmail.com"
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587)
$SMTPClient.EnableSsl = $true
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential($CredUser, $CredPassword);
$SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)
$SMTPClient=$null
Exit

J’ai ensuite planifié ce script pour qu’il s’exécute au moins une fois tous les jours.

ipinfo.php, un script PHP

Sur mon serveur, j’ai même écrit un script PHP, vous permettant d’obtenir votre IP publique :

<?php
    echo $_SERVER['REMOTE_ADDRESS'];
?>

Réseau  / Formateur PHP Livebox Orange php Réseau