Como obter meu endereço IP externo (via NAT) da linha de comando do Windows? [duplicado]

12

O comando "ipconfig" do Windows só pode mostrar os parâmetros das interfaces Ethernet da minha máquina (mesmo com o ipconfig /all argument). Ele pode mostrar informações detalhadas sobre a interface, mas nunca mostrará meu endereço IP externo em uma rede NAT .

Noentanto,existemváriossites,como "Qual é o meu endereço IP" , que pode obter e mostrar meu endereço IP externo. Então, eu estou querendo saber se é possível obter esse valor externamente? Devo esperar que haja alguma maneira de obter essas informações a partir de uma linha de comando na minha máquina local ...

Eu preciso obter esse valor para fazer logon em um aplicativo que estou fazendo com o VBScript . Existe uma maneira de fazer isso, a partir de um cmd no Windows?

    
por Diogo 26.03.2012 / 16:48

8 respostas

10

Agora, usando o site fornecido pelo Oliver, isso pode ser feito no VBScript.

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

Existe um método semelhante para o PowerShell.

    
por 26.03.2012 / 17:05
10

O problema é que não é o seu endereço IP. É o endereço IP do seu roteador.

Assim, você nunca conseguirá recuperá-lo sem passar pelo seu roteador. E a maneira mais fácil é simplesmente fazer com que o roteador recupere um site para você (como você já notou). Porque o roteador usará seu endereço IP para recuperar esse site.

Dito isso, você pode facilitar o processo usando ifconfig.me/ip . Agora, se você tiver curl , já estará pronto, se não: Wget / cURL alternativa nativa ao Windows?

    
por 26.03.2012 / 16:57
5

Crie um script VB para ser executado como quiser.

Digite isso em um arquivo 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

Feche o arquivo txt e renomeie-o para ip.vbs (salve-o em C: para este exemplo)

No windows abro uma janela dos (rodar cmd) ( ha! acabei percebendo que se você trocar isso fica rodando dmc !! )

Verifique se você está em c: / (se não, digite c: e pressione Enter, depois cd .. e digite algumas vezes até que você veja C: >)

No prompt do tipo:

cscript ip.vbs

e você verá instantaneamente seu IP externo.

Se você colocar o arquivo vbs em uma chave usb ou algo assim (e lembre-se de executar cscript ip.vbs no prompt do dos - mas certifique-se de estar no mesmo diretório que o ip. vbs), você pode levar isso para qualquer lugar e executar o arquivo .vbs em qualquer computador para ver o seu IP externo.

Uma outra nota, a linha que tem o endereço para icanhazip.com pode ser alterada para qualquer um dos seguintes:

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

Editar, você também pode rodar o arquivo ip.vbs no windows sem ir a uma janela do dos e ele irá aparecer em uma pequena janela pop-up.

    
por 21.08.2012 / 08:52
3

Para obter um endereço IP externo, você precisa perguntar algo fora da rede e informá-lo sobre o que seu endereço IP "parece" ser para ele. Isso pode ser feito através de scripts, consultando uma página que seja fácil de analisar o resultado e obtendo o endereço IP a partir dele, mas não há nenhuma ferramenta embutida no Windows que você possa apenas dizer qual é o seu endereço IP externo. Você precisará escrever um ou encontrar um e fazer o download.

    
por 26.03.2012 / 16:57
3

Eu tropecei neste site ao procurar pelo equivalente ao PowerShell e pensei em compartilhar esse comando se alguém mais estivesse procurando:

Invoke-WebRequest ifconfig.me/ip

Mais detalhes estão disponíveis aqui, caso você precise deles - link

    
por 22.12.2012 / 15:04
2

Usando algo como DynDNS para atribuir ao seu endereço IP DHCP um nome de domínio, você pode fazer um nslookup de ou ping (se o seu roteador está configurado para responder), o seu nome de domínio e extrair o endereço IP a partir dele.

O único outro utilitário do Windows é traceroute , mas só mostrará o gateway de saída ao qual você se conecta, não o endereço IP do seu roteador que está se conectando a esse gateway.

Editar: Como é preciso analisar um pouco o acima para extrair a string de endereço IP e ifconfig.me tem uma boa resposta esparsa, aqui está uma variante do script de Bob, a função pode testar por nenhuma resposta e devolver uma boa limpeza Endereço IP para uso em um script, se o servidor estiver ativo.

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
    
por 26.03.2012 / 17:10
1

Se o seu roteador suportar o plug universal & Play (UPnP) você pode consultar o (s) seu (s) endereço (s) IP.

No Windows, você pode consultar essas informações usando o WMI e a partir da linha de comando usando a ferramenta WMIC.

    
por 26.03.2012 / 17:18
1

Como outros já disseram, você precisa confiar em um serviço externo. Eu recomendaria o link

Você pode usar o link para obter o ip no formato de texto simples. Ele provou ser rápido e confiável, além de ter uso ilimitado.

    
por 08.05.2013 / 15:16