Que ferramenta de linha de comando entre plataformas permite que eu obtenha meu endereço IP externo?

4

Como faço para obter meu endereço IP externo da linha de comando do Windows e Linux?
No Windows, o ipconfig mostra um endereço IP interno da rede, mas não mostra o externo.

    
por user217631 03.04.2012 / 07:01

5 respostas

17

Nem o Windows nem o Linux estão cientes do seu endereço IP externo, por isso não podem informá-lo nativamente. Então você tem que usar um serviço externo para descobrir qual é o endereço IP.

No linux, você pode usar curl e um dos muitos serviços que informam seu endereço:

$ curl ip.alt.io
123.123.123.123

Existem opções equivalentes para o Windows, como a instalação do curl . Observe que o curl em si não está determinando o seu endereço IP, ele está simplesmente perguntando a um site externo qual endereço IP você parece estar vindo.

No entanto, a melhor maneira de fazer isso é usar um serviço de DNS dinâmico (DDNS) como no-ip.com . Aqui você pode registrar dinamicamente seu endereço IP externo no DNS. Portanto, em vez de usar um endereço IP, você pode usar um endereço de domínio, como myhomeip.no-ip.com .

A maioria dos roteadores domésticos suporta a atualização de DDNS automaticamente quando o endereço externo é alterado e, caso contrário, há clientes para Windows e Linux (ddclient).

    
por 03.04.2012 / 07:16
4

Um busca do Google Qual é o meu endereço IP funciona muito bem.

Your public IP address is ##.###.###.178

Você também pode obter algumas informações sobre sua rede para ter uma boa ideia do que está acontecendo. Usando ferramentas como netstat , traceroute , ssh ou telnet , você pode descobrir como está entrando na rede pública da Internet.

Há o endereço IP público e privado. Se você souber quais são os intervalos de endereços IP privados, poderá adivinhar qual endereço IP está usando na rede externa. Assim que um traceroute termina usando intervalos de endereços IP privados que foram movidos na rede pública.

Rede privada (Wikipedia)

10.0.0.0/24
172.16.0.0/20
192.168.0.0/16

Eu começaria encontrando meu gateway padrão.

No Linux:

netstat -r

No Windows:

netstat /r

O que deve mostrar algo como

Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
172.16.0.0      *               255.255.255.0   U         0 0          0 eth0
172.16.0.0      *               255.255.255.0   U         0 0          0 wlan0
192.168.122.0   *               255.255.255.0   U         0 0          0 virbr0
link-local      *               255.255.0.0     U         0 0          0 eth0
default         172.16.0.2      0.0.0.0         UG        0 0          0 eth0

Observe o padrão na parte inferior, que deve ser seu último passo antes de sair para o mundo público.

Agora, um traceroute para o endereço do servidor DNS do Google, 8.8.8.8, para ver o caminho que você leva para o mundo externo.

Linux:

tracepath 8.8.8.8

Windows:

traceroute 8.8.8.8

O que deve te dar algo assim

traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
 1  172.16.0.2 (172.16.0.2)  0.564 ms  0.882 ms  0.848 ms
 2  ##.###.###.177 (##.###.###.177)  12.239 ms  13.040 ms  13.859 ms

O passo depois da minha rota padrão foi para a nossa rede externa.

O Pesquisa do Google diferia do traceroute , mas apenas pelo um dígito. Isso porque você precisaria de um endereço IP no mesmo intervalo que seu ISP para poder se comunicar com eles. Assim, nosso roteador tem um endereço IP um abaixo do nosso endereço IP externo que é usado pelo nosso ISP para rotear o tráfego para o resto do mundo.

Your public IP address is ##.###.###.178

O que pode ajudar aqui é saber que um dispositivo do roteador tem todos os três endereços IP. O privado, 172.16.0.2 (rota padrão), e o interno fornecido compram nosso ISP ##. ###. ###. 178 e o externo ##. ###. ###. 177 nosso ISP usa para se conectar à Internet. Portanto, se eu souber como me conectar remotamente ao roteador usando o Telnet / ssh, posso usar a consulta do roteador diretamente para obter essas informações usando a linha de comando.

Diferentes roteadores e ISPs têm maneiras diferentes de gerenciar isso. A maioria dos modems DSL domésticos é bastante fácil de usar, já que você tem a senha e as informações de login, mas se o ISP tiver colocado um roteador em seu escritório, eles provavelmente não lhe darão acesso ao roteador.

    
por 03.04.2012 / 10:53
1

Você pode usar a ferramenta lynx para obter o ip externo.

lynx --dump link

    
por 03.04.2012 / 07:14
1

Sua máquina não conhece seu endereço externo. Você precisa usar um serviço externo e buscar os resultados (por exemplo, checkip.dyndns.org).

Você pode usar qualquer cliente HTTP de linha de comando como wget ou curl:

$ wget -q -O - checkip.dyndns.org
<html><head><title>Current IP Check</title></head><body>Current IP Address: 129.132.208.173</body></html>

wget está disponível no Windows e no GNU / Linux

    
por 03.04.2012 / 07:17
1

ifconfig.me é um site que você pode visitar no navegador para obter quase todas as informações de que precisa. Você também pode usar curl nessa página com as variáveis mostradas, para obter apenas essa informação específica. Os dados são retornados em uma string formatada em JSON, o que torna o script muito mais fácil. Verifique a parte inferior da página ifconfig.me para mais exemplos.

Por exemplo:

curl ifconfig.me/ip

curl ifconfig.me/all

    
por 03.04.2012 / 15:24