Bonjour à tous,
Aujourd'hui je vais vous montrer comment récupérer facilement
l'IP publique de votre box SFR depuis la ligne de commande sous Windows et systèmes Unix, sans passer par de tierce partie
comme ipecho.
Les prérequis sont les suivants, même si je pense que si vous avez "Addresse IPv4: XX.XX.XX.XX"
sur la page web d'accueilde votre box, ça marcherait avec pas ou peu de modifications:
Si vous allez dans l'interface de votre box, qui est en général 192.168.1.1, vous pouvez voir que l'adresse IP publique est déjà listé sans même vous connecter en tant qu'admin. Pour récupérer la valeur, exécutez ceci dans votre terminal Unix (adaptez selon votre OS):
# Sous Linux et Unixes curl -s 192.168.1.1 | grep -A 2 "Adresse IPv4" | tail -1 | cut -d" " -f3 # Sous Windows 10, cmd.exe et PowerShell powershell -nologo -noprofile -command "(curl.exe -s 192.168.1.1 | sls 'Adresse IPv4' -Context 2).Split('>')[6].Trim()" # (Non testé) Sous Windows 7, cmd.exe et PowerShell 2.0/3.0 bitsadmin.exe /transfer sfrpubip /download /priority normal http://192.168.1.1/ c:\\sfrindex.html powershell -nologo -noprofile -command "((Get-Content 'C:\sfrindex.html' | sls 'Adresse IPv4' -Context 2)).toString().Split('>')[6].Trim()"
Qu'est ce qui se passe:
curl -s
permet d'imprimer dans le terminal le code source HTML
de la page d'accueilgrep -A 2 "Adresse IPv4"
recherche et affiche la ligne correspondant
aux mots "Adresse IPv4" ainsi que les 2 lignes d'après. La 3ième ligne est l'IP. Côté Windows, c'est ce qu'accomplit le sls
qui est un raccourci de Select-String
tail -1
récupèrera la dernière ligne dernière commande.cut -d" " -f3
va finalement "découper" la chaîne de caractères en prenant
1 espace comme délimiteur et on demande d'afficher le 3ième champ lié à ce découpage: c'est
notre adresse IP publique sans balise HTML superflue et espaces ou charactères vides.En espérant que ça vous a aidé, je vous souhaite une bonne journée.