Como você obtém seu endereço IP público através da linha de comando do Windows?

6

É possível obter seu endereço IP público por meio do cmd sem usar sites como o link ? Eu estou atrás de um roteador.

Por favor, sinta-se à vontade para ir o mais detalhado possível. Estou estudando para meu exame Net +

    
por MIchael S 22.10.2015 / 18:59

6 respostas

10

Você pode usar o Invoke-RestMethod do PowerShell :

PS > Invoke-RestMethod ipinfo.io/ip
99.109.97.210

Ou o alias:

PS > irm ipinfo.io/ip
99.109.97.210
    
por 23.10.2015 / 01:52
5

Você não pode. Por quê? Não existe uma definição clara de 'endereço IP público'. Eu notaria que a resposta é uma abstração maciça, boa o suficiente para explicar o meu ponto de vista, mas cheia de pequenos buracos. Sinta-se à vontade para comentar sobre os grandes (para que eu possa conectá-los).

Essencialmente, tudo que um endereço IP público é é um endereço em uma sub-rede que não foi reservada para uso privado. Não há distinção entre um endereço IP público e privado no que diz respeito à pilha de rede. É apenas roteamento entre sub-redes. Teoricamente, em uma rede fechada, embora seja uma prática terrível, você poderia usar um intervalo de endereços IP públicos e fazer o inverso - usando um endereço RFC 1918 na Internet pública, provavelmente quebraria as coisas. / p>

Se eu executar o pathping (e enquanto não estiver disposto a colocar meu endereço ip na internet, mas não for o cgn, e começar com 101)

Meu endereço IP não está em nenhum lugar na rota (então ... seu PC pode não estar ciente do endereço IP público).

O conceito de um endereço IP público também é nebuloso. O que seria por trás de double nat (eww!), Ou mesmo triplo nat (talvez com intervalos de endereços IP sobrepostos!). O que seria por trás da CGN ou mesmo de uma rede fechada?

Em essência, cada roteador ou sistema simplesmente precisa conhecer o próximo salto e não há necessidade ou maneira de o seu PC saber qual é o seu endereço IP público.

A razão pela qual um serviço externo pode encontrar o seu endereço IP 'público' é que é a esperança de que a mensagem foi entregue ao servidor em questão. Ele também não precisa saber se é o computador de um usuário final, um proxy por trás do qual você tem o computador de um usuário final, um roteador / switch ou até mesmo uma torradeira.

    
por 23.10.2015 / 02:27
4

Não há nada incorporado automaticamente no Windows que faça isso. Você poderia, como outros usuários sugeriram no passado, tentar algo como:

C:\> nslookup myip.opendns.com resolver1.opendns.com

e use uma solicitação de DNS para retornar seu IP voltado para o público. A resposta foi originalmente encontrada aqui .

    
por 22.10.2015 / 19:11
1

Tente isso. Você pode usar% MyIP% como uma variável ou apenas para exibir.

@echo off
nslookup myip.opendns.com resolver1.opendns.com | find "Address" >"%temp%\test1.txt"
more +1 "%temp%\test1.txt" >"%temp%\test2.txt"
del %temp%\test1.txt
set /p MyIP=<%temp%\test2.txt
del %temp%\test2.txt
set MyIP=%MyIP:~10%
cls
echo .
echo %MyIP%
echo .
    
por 13.02.2017 / 00:53
0

Aqui está uma solução usando o Powershell:

@powershell -NoProfile -Command "(new-object net.webclient).DownloadString('http://www.trackip.net/ip')"
    
por 22.10.2015 / 19:45
0

É possível obter seu endereço IP público por meio do cmd?

Sua pergunta é impossível responder como está, porque você está fazendo a pergunta errada.

Você deveria ter perguntado:

How do I get the WAN address of my internet connection from the commmand line?

O endereço da WAN pode ser um endereço IP público ou privado:

  • Seu ISP fornece um endereço WAN.
  • Pode ser estático / dinâmico
  • Pode ser público / privado

Tudo depende de como o ISP configurou a sua rede para se conectar ao seu, a fim de fornecer um serviço de Internet.

    
por 23.10.2015 / 12:56