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.
Réponses
Trop de publicités?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. :)
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 .
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));
}
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 !):
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”
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