83 votes

Commande Windows qui renvoie l'IP externe

Y a-t-il une commande qui me permette de trouver l'IP externe de mon routeur ou de mon NAT ? \DSL Routeur, etc., éliminant ainsi le besoin de visiter whatsmyip.net ou similaire.

6voto

Bradley Forney Points 671

Avec Powershell 3.0 (la version par défaut de Windows 7 est 2.0), vous pouvez utiliser Invoke-WebRequest

Pour IPv4 :

$tmp =Invoke-WebRequest -URI http://myip.dnsomatic.com/
$tmp.Content

Pour IPv6 :

$tmp =Invoke-WebRequest -URI http://myexternalip.com/raw
$tmp.Content

Cela vous donnera une variable avec laquelle travailler si vous avez quelque chose de spécifique à faire avec elle. En fait, je l'utilise pour construire un script pour télécharger l'IP dynamique de mon routeur périodiquement, avoir une autre machine qui teste la communication avec lui à intervalles réguliers, puis mettre à jour le DNS avec la dernière IP si elle a changé afin que je puisse accéder à mon matériel de n'importe où en utilisant un nom au lieu de devoir constamment courir après l'IP.

Et bien sûr, au fur et à mesure que les sites changent ou que leurs résultats changent, vous devrez mettre à jour ce document en conséquence. :)

5voto

paradroid Points 22121

J'ai fait ce lot script pour faire ça il y a quelques mois :

@echo off

:: WhatIsMyIP.cmd - returns public IP address
:: requires: wget.exe

if [%1]==[-h] goto :HELP
if [%1]==[--help] goto :HELP
if [%1]==[/?] goto :HELP

wget -q -O %temp%\MyIP http://www.whatismyip.com/automation/n09230945.asp
for /f "delims= " %%G in (%temp%\myip) do set PublicIP=%%G & del %temp%\MyIP
echo. & echo Your public IP address is %PublicIP% & echo.
if [%1]==[--clip] echo %PublicIP% | clip
goto :EOF

:HELP
echo. & echo Usage: whatismyip [--clip] & echo.
goto :EOF

:EOF

Il vous donne l'option de mettre l'adresse IP dans le presse-papiers et il définit une variable d'environnement - %PublicIP% .


MÉTHODE PLUS SIMPLE :

Maintenant, je fais ça à la place :

curl icanhazip.com

ou...

curl icanhazip.com | clip

...pour obtenir l'adresse IP publique actuelle dans le presse-papiers.

Vous devez cURL .

3voto

Essayez ça :
Il n'est pas nécessaire d'installer un quelconque logiciel externe.

@set @script=0 /*
  @echo off
    set @script=
    cscript //nologo //e:jscript "%~dpnx0"
  exit /b
*/

with (new ActiveXObject('Microsoft.XMLHTTP')) {
   open('GET', 'http://internet.yandex.ru/', false);
   send();

   WScript.echo(responseText.match(/IPv4:\s(\d+\.){3}\d+/g));
}

3voto

Matías Points 3008

Il est difficile de se passer de programmes tiers sous Windows car Telnet n'est pas fourni par défaut, mais, s'il est présent (XP) ou activé (Windows Vista et supérieur), il suffit de taper :

telnet curlmyip.com 80

l'écran va clignoter, et vous aurez juste un curseur... Type suivant :

GET

En lettres majuscules... vous verrez alors les en-têtes, suivis de votre ip (et désolé, je l'ai flouté, je montrais juste où il serait !):

enter image description here

D'autres réponses fonctionnent évidemment, mais j'essaie de m'en tenir à la question sur quelque chose qui peut être utilisé sur n'importe quel Windows, sans programmes tiers !

Pour Windows Vista et les versions supérieures, vous pouvez installer telnet facilement (et en toute sécurité) grâce à Programs and features ou utilisez la commande suivante :

pkgmgr /iu:”TelnetClient”

2voto

user5603796 Points 161

Vous pouvez utiliser ifcfg.me . il prend en charge certaines commandes internes qui sont fournies avec Windows par défaut.

curl ifcfg.me
nslookup . ifcfg.me
telnet ifcfg.me
ftp ifcfg.me
finger @ifcfg.me

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X