Trouver son adresse IP publique avec PowerShell peut s’avérer pratique, notamment pour dépanner un réseau ou par simple curiosité. Généralement, des sites web comme ipinfo.io ou icanhazip.com fournissent l’adresse IP externe en clair, sans avoir à utiliser de navigateur. Cependant, il arrive que les scripts PowerShell génèrent des erreurs (par exemple, si Internet Explorer est désactivé ou si vous utilisez Windows Server Core), ce qui complique la tâche. Voici comment obtenir l’adresse IP facilement.
Comment vérifier votre adresse IP publique avec PowerShell
Méthode 1 : Utilisation de Invoke-WebRequest (Analyse de base)
C’est la méthode la plus simple, surtout sur la plupart des ordinateurs Windows. Il suffit d’ouvrir PowerShell et d’exécuter :
(Invoke-WebRequest -uri "http://ifconfig.me/ip").Content
Cela devrait afficher votre adresse IP externe actuelle, sans problème. Sur certaines configurations, notamment si Internet Explorer n’est pas installé ou a été désactivé, une erreur peut survenir.
Dans ce cas, vous pouvez ajouter le paramètre -UseBasicParsing, qui contourne le moteur IE :
(Invoke-WebRequest -UseBasicParsing -uri "http://ifconfig.me/ip").Content
C’est un peu la solution de secours, au cas où.
Et si vous souhaitez abandonner PowerShell un instant, l’ curlalias fonctionne également :
(curl ifconfig.me).Content
Cette commande devrait simplement afficher votre adresse IP. C’est assez simple, mais fonctionnel.
Méthode 2 : Utilisation de System. Net. WebClient
Si Invoke-WebRequest vous pose problème, la classe WebClient peut parfois résoudre le problème. Elle est un peu ancienne, mais fiable.
$wc = New-Object System. Net. WebClient $wc. DownloadString("http://myexternalip.com/raw")
Cette méthode récupère directement l’adresse IP sous forme de chaîne de caractères. Un jeu d’enfant ! Parfois, elle est moins sensible aux dépendances telles que celle d’Internet Explorer.
Méthode 3 : Utilisation de la résolution DNS avec OpenDNS (pour l’adresse IP derrière un NAT)
Cette méthode est utile si vous êtes derrière un routeur utilisant la NAT et que vous souhaitez accéder à l’adresse IP externe visible par les autres utilisateurs. Vous pouvez résoudre le nom d’hôte myip.opendns.com via PowerShell :
Resolve-DnsName -Name myip.opendns.com -Server resolver1.opendns.com
Ou à l’ancienne, en utilisant nslookup :
nslookup myip.opendns.com resolver1.opendns.com
Cette commande renvoie une réponse DNS avec votre adresse IP – pratique si vous êtes dans une configuration réseau. Attention cependant : elle affiche souvent l’adresse IP externe de votre routeur, et non nécessairement l’adresse IP de votre ordinateur.
Notes particulières
Il arrive que ces commandes génèrent des erreurs, notamment si Internet Explorer est désactivé ou si le système applique des politiques de sécurité strictes. Dans ce cas, l’ option `-UseBasicParsing` devrait résoudre la plupart des problèmes. Sinon, pour les plus aventureux, la solution WebClient fonctionne généralement sur les serveurs ou les installations minimales.
Comme Windows a parfois tendance à compliquer les choses, toutes les méthodes ne fonctionnent pas de la même manière sur tous les systèmes ; les résultats peuvent varier. Et bien souvent, l’adresse IP renvoyée est simplement l’adresse IP externe de votre routeur ou de votre proxy, et non l’adresse IP réelle de votre appareil.