ПРИМЕЧАНИЕ. Речь идет о внешнем IP-адресе (тот, который серверы в Интернете видят при подключении к ним) - если вам нужен внутренний IP-адрес (тот, который ваш компьютер использует для соединений, которые могут отличаться), посмотрите это ответить .
TL; DR - Самые быстрые методы в 2015 году
Самый быстрый способ с использованием DNS:
dig +short myip.opendns.com @resolver1.opendns.com
или используя externalip :
externalip dns
Самый быстрый с использованием HTTP:
curl -s http://whatismyip.akamai.com/
или используя externalip:
externalip http
Самый быстрый с использованием HTTPS с действующим сертификатом:
curl -s https://4.ifcfg.me/
или используя externalip:
externalip https
Использование telnet:
С nc
командой:
nc 4.ifcfg.me 23 | grep IPv4 | cut -d' ' -f4
или используя externalip:
externalip telnet
С telnet
командой:
telnet 4.ifcfg.me 2>&1 | grep IPv4 | cut -d' ' -f4
Используя FTP:
echo close | ftp 4.ifcfg.me | awk '{print $4; exit}'
или используя externalip:
externalip ftp
Все вышеперечисленное можно запустить, используя мой скрипт externalip :
externalip dns
externalip http
externalip https
externalip telnet
externalip ftp
Теперь длинная история ...
Существует множество опций для разных серверов, предоставляющих внешний IP, особенно через HTTP, размещенный здесь или в другом месте.
Я сделал тест, чтобы увидеть, является ли какой-либо из них лучше, чем другие, и я был удивлен результатами. Например, один из наиболее рекомендуемых файлов ifconfig.me был почти всегда самым медленным для меня, иногда на ответ приходилось много секунд. Многие не работают по HTTPS или работают, но имеют недействительные сертификаты. У некоторых очень противоречивые времена ответа.
Ориентиры
HTTP и HTTPS
Это источник моего скрипта externalip-benchmark, который я использовал:
Вы можете запустить его самостоятельно, чтобы увидеть, какие службы, упомянутые здесь, стоит использовать:
wget https://raw.githubusercontent.com/rsp/scripts/master/externalip-benchmark
chmod a+x externalip-benchmark
./externalip-benchmark
Мои результаты, которые я получил 2015-04-03 из Варшавы - адреса были изменены, чтобы защитить невинных:
Лучшее время отклика 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'
Лучшие времена ответа 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=''
(Примечание: есть быстрые ответы с пустым содержимым - они недействительны.)
Лучшее среднее время пинга:
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/
Вот результаты, которые я получил на 2015-04-03 из Амстердама:
Лучшее время отклика 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'
Лучшие времена ответа 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=''
Лучшее среднее время пинга:
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/
(Пинги 999999 означают 100% потерю пакетов.)
DNS
Для сравнения здесь приводятся примеры других методов, протестированных 2015-06-16 в Варшаве и Амстердаме.
С помощью:
time dig +short myip.opendns.com @resolver1.opendns.com
обычно занимает (реальное время настенные часы) около:
- 0.035s из Варшавы
- 0,015 с из Амстердама
На самом деле есть четыре резольвера, которые можно использовать таким образом:
- resolver1.opendns.com
- resolver2.opendns.com
- resolver3.opendns.com
- resolver4.opendns.com
Все они дают одинаковое время отклика в Варшаве и Амстердаме, но это может быть не так в других местах.
Использование 208.67.222.222 - IP-адрес resolver1.opendns.com вместо его доменного имени быстрее:
- 0.023с из Варшавы
- 0,009 с из Амстердама
но может не сработать в будущем, если IP-адрес когда-либо изменится (хотя это может быть маловероятно для хорошо известного преобразователя DNS - возможно, мне следует использовать IP-адрес в моем скрипте externalip - прокомментируйте).
Telnet
Telnet с командой nc
или telnet
(см. Выше) обычно принимает:
- 0.103s из Варшавы
- 0.035 с из Амстердама
(Между командами nc
и telnet
командами нет заметной разницы .)
FTP
- 0.104s из Варшавы
- 0.036s из Амстердам
Доменные имена
Все методы будут быстрее (особенно при первом запуске), когда вместо доменных имен указанных служб будут использоваться IP-адреса (кроме HTTP, который может использовать виртуальные серверы на основе хоста и не работать с голым IP-адресом). не проверено), но перестанет работать, когда службы изменят IP-адрес, поэтому он может быть быстрее, но менее перспективным.
Комментарии
Если вы видите интересные результаты из своего местоположения, или если вы думаете, что некоторые другие хосты должны быть рекомендованы вместо тех, которые я выбрал, пожалуйста, оставьте комментарий. Если отсутствует какой-либо важный сервис, пожалуйста, прокомментируйте или опубликуйте проблему на GitHub. Я хотел бы, чтобы эта публикация была обновлена с текущим выбором наиболее эффективных услуг.