Comment obtenir son adresse IP publique en PowerShell ?
I. Présentation
D'un côté, nous avons PowerShell et ses commandes permettant de réaliser des requêtes web, et de l'autre, nous avons ces sites qui nous permettent d'afficher l'adresse IP publique de notre box. Mélangez les deux et vous obtenez la possibilité d'obtenir votre adresse IP publique en ligne de commande ! ?
C'est ce que nous allons voir dans ce tutoriel, ce qui peut s'avérer utile pour vos scripts.
Tutoriel disponible au format vidéo :
II. IP publique et PowerShell
A partir de votre PC, si vous accédez directement à l'adresse ci-dessous, vous arrivez sur une page blanche avec seulement votre adresse IP publique comme contenu. Cela est parfait, car on peut récupérer directement l'adresse IP publique sans parser, ni filtrer le code source de la page.
http://ifconfig.me/ip
Ensuite, au niveau de PowerShell, nous pouvons utiliser le cmdlet "Invoke-WebRequest" pour exécuter une requête à destination d'un site Internet, en l'occurrence l'URL citée précédemment. Ce qui donne donne :
Invoke-WebRequest -uri "http://ifconfig.me/ip"
Cette commande nous retourne différents éléments car elle contient plusieurs propriétés. Il y a la propriété "Content" qui nous intéresse tout particulièrement car elle retourne le contenu de la page. Si l'on regarde sa valeur, elle correspond à l'adresse IP publique : bonne nouvelle !
Il ne reste plus qu'à afficher seulement cette propriété pour avoir l'adresse IP publique en retour. Voici la commande :
(Invoke-WebRequest -uri "http://ifconfig.me/ip").Content
Bien sûr, cette valeur peut-être stockée dans une variable :
$MyIP = (Invoke-WebRequest -uri "http://ifconfig.me/ip").Content
En bonus, si vous souhaitez géolocaliser une ou plusieurs adresses IP publiques, je vous invite à utiliser mon script Get-IPLocation. Celui-ci est disponible sur mon GitHub, à cette adresse : Get-IPLocation.ps1
Voici un exemple de son utilisation :
.\Get-IPLocation -IPToCheck "8.8.8.8"
Qui retournera :
YourIP : 90.X.X.X TargetIP : 8.8.8.8 Country : United States City : Unknown GoogleMaps : https://www.google.fr/maps/place/UnitedStates
tu peux aussi faire curl ifconfig.me sous W10
Oui tout à fait car il y a un alias de « curl » vers « Invoke-WebRequest » 😉
et sous W7 il y a GOW qui permet d’ajouter plein de commandes LINUX dont curl : https://github.com/bmatzelle/gow
et ça ne remplace pas CMD.exe