NOTA: Trata-se de um endereço IP externo (aquele que os servidores na Internet veem quando você se conecta a eles) - se você deseja um endereço IP interno (aquele que o seu computador está usando para conexões, que pode ser diferente), consulte este 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 telnet:
Com o nc
comando:
nc 4.ifcfg.me 23 | grep IPv4 | cut -d' ' -f4
ou usando externalip:
externalip telnet
Com o telnet
comando:
telnet 4.ifcfg.me 2>&1 | grep IPv4 | cut -d' ' -f4
Usando FTP:
echo close | ftp 4.ifcfg.me | awk '{print $4; exit}'
ou usando externalip:
externalip ftp
Todos os itens acima podem ser executados 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 que fornecem o IP externo, especialmente via HTTP postado aqui ou em outro lugar.
Fiz um benchmark 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 alguns segundos para responder. Muitos não funcionam com HTTPS ou funcionam, mas possuem certificados inválidos. Alguns têm tempos de resposta muito inconsistentes.
Benchmarks
HTTP e HTTPS
Esta é a fonte do meu script externalip-benchmark que eu 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 03/04/2015 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'
Melhores tempos de resposta 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 - essas são inválidas.)
Melhores tempos médios 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 03/04/2015 em 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'
Melhores tempos de resposta 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=''
Melhores tempos médios 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 16/06/2015 em Varsóvia e Amsterdã.
Usando:
time dig +short myip.opendns.com @resolver1.opendns.com
normalmente leva (hora 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:
- resolv1.opendns.com
- resolv2.opendns.com
- resolv3.opendns.com
- resolv4.opendns.com
Todos oferecem os mesmos tempos de resposta em Varsóvia e Amsterdã, mas isso pode não ser o caso em outros locais.
Usando 208.67.222.222 - o IP do resolv1.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 mudar (embora seja improvável para um resolvedor DNS conhecido - talvez eu deva usar o IP no meu script externalip - por favor, comente).
Telnet
Telnet com nc
ou telnet
comando (veja acima) geralmente leva:
- 0.103s de Varsóvia
- 0.035s de Amsterdã
(Não há diferença perceptível entre nc
e telnet
comandos.)
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 endereços IP serão 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 simples - não testado) mas parará de funcionar quando os serviços alterarem o endereço IP, para que seja mais rápido, mas menos à prova de futuro.
Comentários
Se você vir alguns resultados interessantes da sua localização ou se achar que alguns outros hosts devem ser recomendados em vez daqueles que eu escolhi, por favor, poste um comentário. Se houver algum serviço importante ausente, comente ou publique um problema no GitHub. Gostaria de manter esta postagem atualizada com uma escolha atual dos serviços com melhor desempenho.