¿Cómo obtener mi dirección IP externa (a través de NAT) desde la línea de comandos de Windows? [duplicar]


13

El comando "ipconfig" de Windows solo puede mostrarme los parámetros de las interfaces Ethernet de mi máquina (incluso con el ipconfig /allargumento). Puede mostrar información detallada sobre la interfaz, pero nunca me mostrará mi dirección IP externa a través de una red NAT .

ipconfig / all: captura de pantalla de Windows

Sin embargo, hay varios sitios web, como "Cuál es mi dirección IP", que pueden obtener y mostrar mi dirección IP externa. Entonces, me pregunto si es posible obtener este valor externamente. ¿Debo esperar que haya alguna forma de obtener esta información desde una línea de comando en mi máquina local ...

Necesito obtener este valor para iniciar sesión en una aplicación que estoy haciendo con VBScript . ¿Hay alguna manera de hacer esto, desde un cmden Windows?


Tenga en cuenta que los servicios what-is-my-IP basados ​​en HTTP pueden proporcionarle la IP de un servidor proxy. (Y antes de que alguien señale que existen proxys HTTPS, no puede usar proxy HTTPS de forma transparente . Si tiene uno, lo sabrá)
Billpg

Respuestas:


11

Ahora, usando el sitio que Oliver proporcionó, esto se puede hacer en VBScript.

Dim o
Set o = CreateObject("MSXML2.XMLHTTP")
o.open "GET", "http://ifconfig.me/ip", False
o.send
WScript.StdOut.Write o.responseText

Hay un método similar para PowerShell.


Bien, funcionó. Lo insertaré en mi programa. Es una buena solución para mi problema. Gracias.
Diogo

Hmm, está devolviendo un "Acceso denegado" en la línea 4, carácter 1 para este script. Incluso ejecutándolo desde una línea de comando de derechos de administrador ... ¿Sabes por qué?
Diogo

@DiogoRocha No sé por qué. El de Fiasco es probablemente más confiable. También es posible que tenga un firewall o algo que bloquee el acceso a Internet a wscript/ cscript.
Bob

10

El problema es que no es tu dirección IP. Es la dirección IP de su enrutador.

Por lo tanto, nunca podrá recuperarlo sin pasar por su enrutador. Y la forma más fácil es simplemente hacer que el enrutador recupere un sitio web por usted (como ya lo ha notado). Porque el enrutador usará su dirección IP para recuperar ese sitio.

Dicho esto, puede facilitarlo usando ifconfig.me/ip . Ahora, si lo ha curlhecho, ya ha terminado, si no: ¿ Wget / cURL alternativa nativa a Windows?


1
ifconfig.me/ip tardó mucho en cargarse. whatismyip.org le proporciona una IP de texto plano idéntico y fue mucho más rápido.
nhinkle

1
@nhinkle Eso podría depender de tu ubicación, sin embargo. Ambos parecen tener el mismo tiempo de carga para mí, pero el tiempo de respuesta de ping de ifconfig.me es la mitad (139 ms frente a 250 ms). Lo que probablemente sea más importante es que el servicio permanece activo el mayor tiempo posible, pero realmente no tenemos forma de saberlo.
Bob

No hay nada de malo con las direcciones IP externas de mi enrutador teniendo en cuenta las reglas de reenvío de puertos e IPv4.
mbx

5

Cree un script VB para ejecutar a su gusto.

Escriba esto en un archivo txt:

Option Explicit
Dim http : Set http = CreateObject( "MSXML2.ServerXmlHttp" )
http.Open "GET", "http://icanhazip.com", False
http.Send
Wscript.Echo http.responseText   'or do whatever you want with it
Set http = Nothing

Cierre el archivo txt y cámbiele el nombre a ip.vbs (guárdelo en C: para este ejemplo)

En ventanas, abra una ventana de dos (ejecute cmd) ( ¡ja! Me acabo de dar cuenta si intercambia que se convierte en ejecutar dmc !! )

Asegúrate de estar en c: / (si no, escribe c: & presiona enter, luego cd .. & ingresa varias veces hasta que veas C:>)

En el indicador de dos, escriba:

cscript ip.vbs

e instantáneamente verás tu IP externa.

Si coloca el archivo vbs en una clave usb o algo así (y recuerde ejecutar cscript ip.vbs en el indicador de dos, pero asegúrese de estar en el mismo directorio que el archivo ip.vbs), puede llevarlo consigo donde quiera que vaya y ejecute el archivo .vbs en cualquier computadora para ver su IP externa.

Otra nota, la línea que tiene la dirección de icanhazip.com se puede cambiar a cualquiera de los siguientes:

http://myip.dnsomatic.com
http://whatismyip.org
http://icanhazip.com
http://www.whatismyip.com/automation/n09230945.asp
http://externip.com

Editar, también puede ejecutar el archivo ip.vbs en Windows sin ir a una ventana de dos y se mostrará en una pequeña ventana emergente.


icanhazip.com tiene un tiempo de respuesta muy corto que es mejor que ipconfig.me/ip aquí en el centro de Europa.
Martin Braun


3

Para obtener una dirección IP externa, debe preguntar algo fuera de la red y hacer que le informe cuál es su "dirección IP". Esto se puede hacer mediante secuencias de comandos al consultar una página que es fácil de analizar el resultado y obtener la dirección IP de eso, pero no hay una herramienta integrada en Windows que pueda decirle cuál es su dirección IP externa. Deberá escribir uno usted mismo o encontrar uno y descargarlo.


2

Usando algo como DynDNS para asignar un nombre de dominio a su dirección IP DHCP, puede hacer un nslookupping o (si su enrutador está configurado para responder), su nombre de dominio y extraer la dirección IP de eso.

La única otra utilidad de Windows es traceroute, pero solo mostrará la puerta de enlace de salida a la que se conecta, no la dirección IP de su enrutador que se conecta a esa puerta de enlace.

Editar: como se necesita un poco de análisis en lo anterior para extraer la cadena de la dirección IP y ifconfig.metiene una buena respuesta dispersa, aquí hay una pequeña variante en el script de Bob, la función puede probar si no hay respuesta y devolver una IP limpia y agradable dirección para usar en un script si el servidor está activo.

wscript.echo WAN_IP()

function WAN_IP()
    set obj = createobject("Microsoft.XMLHTTP")
    call obj.open("get", "http://ifconfig.me/ip", false)
    obj.send()

    strresponse = obj.responsetext
    set obj = nothing

    if strresponse <> "" then
        strIP = strresponse
    else
        strIP = "Unavailable"
    end if

    WAN_IP = trim(strIP)

end function

1

Si su enrutador admite Universal Plug & Play (UPnP), puede consultar sus direcciones IP.

En Windows puede consultar dicha información utilizando WMI y desde la línea de comandos utilizando la herramienta WMIC.


2
Podría dar un ejemplo? Estaría muy interesado en esto.
Der Hochstapler

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.