NOTA: trata-se do endereço IP externo (aquele que os servidores da Internet veem quando você se conecta a eles) - se você quiser um IP interno endereço (aquele que seu próprio computador está usando para conexões, que pode ser diferente) veja esta resposta .
TL; DR - Métodos mais rápidos em 2015
O método mais rápido usando o DNS:
dig +short myip.opendns.com @resolver1.opendns.com
ou usando externalip :
externalip dns
O mais rápido usando HTTP:
curl -s http://whatismyip.akamai.com/
ou usando externalip:
externalip http
O mais rápido usando HTTPS com um certificado válido:
curl -s https://4.ifcfg.me/
ou usando externalip:
externalip https
Usando o telnet:
Com o comando nc
:
nc 4.ifcfg.me 23 | grep IPv4 | cut -d' ' -f4
ou usando externalip:
externalip telnet
Com o comando telnet
:
telnet 4.ifcfg.me 2>&1 | grep IPv4 | cut -d' ' -f4
Usando o FTP:
echo close | ftp 4.ifcfg.me | awk '{print $4; exit}'
ou usando externalip:
externalip ftp
Todas as opções acima podem ser executadas usando meu script externalip como:
externalip dns
externalip http
externalip https
externalip telnet
externalip ftp
Agora, uma longa história ...
Existem muitas opções de servidores diferentes fornecendo o IP externo, especialmente via HTTP postado aqui ou em outro lugar.
Eu fiz uma referência para ver se algum deles é melhor que os outros e fiquei surpreso com os resultados. Por exemplo. Um dos ifconfig.me mais amplamente recomendado foi quase sempre o mais lento para mim, às vezes levando muitos segundos para responder. Muitos não trabalham com HTTPS ou trabalham, mas possuem certificados inválidos. Alguns têm tempos de resposta muito inconsistentes.
Referências
HTTP e HTTPS
Esta é a fonte do meu script externalip-benchmark que usei:
Você pode executá-lo para ver quais serviços mencionados aqui valem a pena usar:
wget https://raw.githubusercontent.com/rsp/scripts/master/externalip-benchmark
chmod a+x externalip-benchmark
./externalip-benchmark
Meus resultados que obtive em 2015-04-03 de Varsóvia - os endereços foram alterados para proteger os inocentes:
Melhores tempos de resposta HTTP:
0.086s http://ip.tyk.nu/ - answer='172.31.133.7'
0.089s http://whatismyip.akamai.com/ - answer='172.31.133.7'
0.091s http://tnx.nl/ip - answer='172.31.133.7'
0.117s http://ifcfg.me/ - answer='172.31.133.7'
0.156s http://l2.io/ip - answer='172.31.133.7'
0.317s http://ip.appspot.com/ - answer='172.31.133.7'
0.336s http://ident.me/ - answer='172.31.133.7'
0.338s http://ipof.in/txt - answer='172.31.133.7'
0.347s http://icanhazip.com/ - answer='172.31.133.7'
0.496s http://curlmyip.com/ - answer='172.31.133.7'
0.527s http://wgetip.com/ - answer='172.31.133.7'
0.548s http://curlmyip.com/ - answer='172.31.133.7'
0.665s http://bot.whatismyipaddress.com/ - answer='172.31.133.7'
0.665s http://eth0.me/ - answer='172.31.133.7'
1.041s http://ifconfig.me/ - answer='172.31.133.7'
1.049s http://corz.org/ip - answer='172.31.133.7'
1.598s http://ipecho.net/plain - answer='172.31.133.7'
Melhor tempo de resposta de https:
0.028s https://curlmyip.com/ - answer=''
0.028s https://curlmyip.com/ - answer=''
0.029s https://l2.io/ip - answer=''
0.029s https://tnx.nl/ip - answer=''
0.072s https://whatismyip.akamai.com/ - answer=''
0.113s https://ipecho.net/plain - answer=''
0.117s https://ident.me/ - answer=''
0.207s https://ip.tyk.nu/ - answer='172.31.133.7'
0.214s https://ipof.in/txt - answer='172.31.133.7'
0.259s https://ifcfg.me/ - answer='172.31.133.7'
0.289s https://corz.org/ip - answer=''
0.436s https://ip.appspot.com/ - answer='172.31.133.7'
0.448s https://bot.whatismyipaddress.com/ - answer=''
0.454s https://eth0.me/ - answer=''
0.673s https://icanhazip.com/ - answer='172.31.133.7'
5.255s https://ifconfig.me/ - answer=''
10.000s https://wgetip.com/ - answer=''
(Nota: existem algumas respostas rápidas com conteúdo vazio - são inválidas.)
Melhor tempo médio de ping:
10.210 //whatismyip.akamai.com/
36.820 //tnx.nl/ip
37.169 //ip.tyk.nu/
39.412 //ipof.in/txt
40.967 //ident.me/
41.257 //ipecho.net/plain
43.918 //ifcfg.me/
45.720 //l2.io/ip
64.749 //ip.appspot.com/
123.412 //corz.org/ip
134.245 //wgetip.com/
157.997 //icanhazip.com/
161.613 //curlmyip.com/
162.100 //curlmyip.com/
268.734 //ifconfig.me/
999999 //bot.whatismyipaddress.com/
999999 //eth0.me/
Aqui estão os resultados que obtive em 2015-04-03 de Amsterdã:
Melhores tempos de resposta HTTP:
0.021s http://ipecho.net/plain - answer='172.31.13.37'
0.027s http://tnx.nl/ip - answer='172.31.13.37'
0.035s http://whatismyip.akamai.com/ - answer='172.31.13.37'
0.039s http://ifcfg.me/ - answer='172.31.13.37'
0.045s http://l2.io/ip - answer='172.31.13.37'
0.142s http://ident.me/ - answer='172.31.13.37'
0.144s http://ipof.in/txt - answer='172.31.13.37'
0.150s http://ip.appspot.com/ - answer='172.31.13.37'
0.150s http://ip.tyk.nu/ - answer='172.31.13.37'
0.170s http://icanhazip.com/ - answer='172.31.13.37'
0.190s http://eth0.me/ - answer='172.31.13.37'
0.191s http://wgetip.com/ - answer='172.31.13.37'
0.301s http://curlmyip.com/ - answer='172.31.13.37'
0.330s http://bot.whatismyipaddress.com/ - answer='172.31.13.37'
0.343s http://curlmyip.com/ - answer='172.31.13.37'
0.485s http://corz.org/ip - answer='172.31.13.37'
3.549s http://ifconfig.me/ - answer='172.31.13.37'
Melhor tempo de resposta de https:
0.004s https://curlmyip.com/ - answer=''
0.012s https://curlmyip.com/ - answer=''
0.012s https://tnx.nl/ip - answer=''
0.016s https://ipecho.net/plain - answer=''
0.071s https://whatismyip.akamai.com/ - answer=''
0.096s https://ifcfg.me/ - answer='172.31.13.37'
0.097s https://ident.me/ - answer=''
0.187s https://corz.org/ip - answer=''
0.187s https://ip.appspot.com/ - answer='172.31.13.37'
0.189s https://ip.tyk.nu/ - answer='172.31.13.37'
0.195s https://eth0.me/ - answer=''
0.253s https://l2.io/ip - answer=''
0.300s https://ipof.in/txt - answer='172.31.13.37'
0.324s https://bot.whatismyipaddress.com/ - answer=''
0.512s https://icanhazip.com/ - answer='172.31.13.37'
1.272s https://ifconfig.me/ - answer=''
10.002s https://wgetip.com/ - answer=''
Melhor tempo médio de ping:
1.020 //ipecho.net/plain
1.087 //whatismyip.akamai.com/
5.011 //ip.appspot.com/
6.942 //ident.me/
7.017 //ipof.in/txt
8.209 //tnx.nl/ip
11.343 //ip.tyk.nu/
12.647 //ifcfg.me/
13.828 //l2.io/ip
81.642 //icanhazip.com/
85.447 //wgetip.com/
91.473 //corz.org/ip
102.569 //curlmyip.com/
102.627 //curlmyip.com/
247.052 //ifconfig.me/
999999 //bot.whatismyipaddress.com/
999999 //eth0.me/
(Os 999999 pings significam 100% de perda de pacotes.)
DNS
Para uma comparação, há momentos em que outros métodos são testados em Varsóvia e em Amsterdã, em 2015-06-16.
Usando:
time dig +short myip.opendns.com @resolver1.opendns.com
geralmente leva (tempo real do relógio de parede) sobre:
- 0,035s de Varsóvia
- 0,015s de Amsterdã
Na verdade, existem quatro resolvedores que podem ser usados dessa maneira:
- resolver1.opendns.com
- resolver2.opendns.com
- resolver3.opendns.com
- resolver4.opendns.com
Todos eles dão os mesmos tempos de resposta em Varsóvia e Amsterdã, mas isso pode não ser o caso em outros locais.
Usando o 208.67.222.222 - o IP do resolver1.opendns.com, em vez de seu nome de domínio, é mais rápido:
- 0,023s de Varsóvia
- 0,009s de Amsterdã
mas pode não funcionar no futuro se o IP alguma vez mudar (embora possa ser improvável para um resolvedor de DNS bem conhecido - talvez eu deva usar o IP no meu externalip script - por favor, comente.
Telnet
O comando
Telnet com nc
ou telnet
(veja acima) geralmente leva:
- 0,103s de Varsóvia
- 0,035s de Amsterdã
(Não há diferença perceptível entre os comandos nc
e telnet
.)
FTP
- 0.104s de Varsóvia
- 0,036s de Amsterdã
Nomes de domínio
Todos os métodos serão mais rápidos (especialmente quando executados pela primeira vez) quando os endereços IP forem usados em vez dos nomes de domínio dos serviços fornecidos (exceto com HTTP que pode usar servidores virtuais baseados em host e não funcionar com IP desencapado - não testado), mas deixará de funcionar quando os serviços alterarem o endereço IP, para que ele seja mais rápido, mas menos resistente ao futuro.
Comentários
Se você vir alguns resultados interessantes de sua localização ou se achar que alguns outros hosts devem ser recomendados, em vez daqueles que eu escolhi, poste um comentário. Se algum serviço importante estiver faltando, por favor, comente ou publique um problema no GitHub. Gostaria de manter este post atualizado com uma escolha atual de serviços de melhor desempenho.