ПРИМІТКА. Йдеться про зовнішню 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 dns
externalip http
externalip https
externalip telnet
externalip ftp
Тепер довга історія ...
Існує маса варіантів різних серверів, що надають зовнішній IP, особливо через HTTP, розміщений тут чи деінде.
Я зробив орієнтир, щоб побачити, чи хтось із них кращий за інші, і мене здивували результати. Наприклад, один з найбільш рекомендованих ifconfig.me був майже завжди найповільнішим для мене, іноді потрібні багато секунд для відповіді. Багато хто не працює над HTTPS або не працюють, але мають недійсні сертифікати. У деяких є дуже непослідовні часи реакції.
Орієнтири
HTTP та HTTPS
Це джерело мого сценарію зовнішнього тесту, який я використав:
Ви можете запустити його самостійно, щоб побачити, які послуги, згадані тут, варто використовувати:
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
Для порівняння тут є часи, які інші методи перевіряли 16.06.2015 з Варшави та Амстердаму.
Використання:
time dig +short myip.opendns.com @resolver1.opendns.com
зазвичай займає (реальний час настінного годинника) приблизно:
- 0,035 з Варшави
- 0,015 з Амстердаму
Насправді є чотири резолюції, які можна використовувати таким чином:
- resolutionver1.opendns.com
- resolutionver2.opendns.com
- resolutionver3.opendns.com
- resolutionver4.opendns.com
Усі вони дають однакові часи відгуку у Варшаві та Амстердамі, але це може бути не в інших місцях.
Використання 208.67.222.222 - IP-адреса resoluver1.opendns.com замість доменного імені швидше:
- 0,023 з Варшави
- 0,009 з Амстердаму
але, можливо, не буде працювати в майбутньому, якщо IP коли-небудь зміниться (хоча це може бути навряд чи добре відомим DNS-рішенням - можливо, я повинен використовувати IP в моєму сценарії зовнішнього сценарію - будь ласка, прокоментуйте).
Telnet
Telnet з nc
або telnet
командою (див. Вище) зазвичай займає:
- 0.103 з Варшави
- 0,035 з Амстердаму
(Немає помітної різниці між командами nc
та telnet
командами.)
FTP
- 0,104 з Варшави
- 0,036 з Амстердаму
Доменні імена
Усі методи будуть швидшими (особливо при першому запуску), коли замість доменних імен даних служб будуть використовуватися IP-адреси (за винятком HTTP, який може використовувати віртуальні сервери на базі хостів і не працювати з голою IP - не перевірено), але вона перестане працювати, коли служби змінюють IP-адресу, так що вона може бути швидшою, але менш надійною.
Коментарі
Якщо ви бачите цікаві результати з вашого місцезнаходження або якщо ви думаєте, що рекомендувати інших хостів замість тих, які я вибрав, будь ласка, опублікуйте коментар. Якщо якась важлива послуга відсутня, будь ласка, прокоментуйте або опублікуйте проблему на GitHub. Я хотів би постійно оновлювати цю публікацію за допомогою поточного вибору найкращих послуг.