UWAGA: Chodzi o zewnętrzny adres IP (ten, który widzą serwery w Internecie podczas łączenia się z nimi) - jeśli chcesz mieć wewnętrzny adres IP (ten, którego używa twój komputer do połączeń, który może być inny) zobacz to odpowiedzieć .
TL; DR - najszybsze metody w 2015 r
Najszybsza metoda wykorzystująca DNS:
dig +short myip.opendns.com @resolver1.opendns.com
lub używając externalip :
externalip dns
Najszybszy przy użyciu HTTP:
curl -s http://whatismyip.akamai.com/
lub używając externalip:
externalip http
Najszybszy przy użyciu HTTPS z ważnym certyfikatem:
curl -s https://4.ifcfg.me/
lub używając externalip:
externalip https
Korzystanie z telnet:
Z nc
poleceniem:
nc 4.ifcfg.me 23 | grep IPv4 | cut -d' ' -f4
lub używając externalip:
externalip telnet
Z telnet
poleceniem:
telnet 4.ifcfg.me 2>&1 | grep IPv4 | cut -d' ' -f4
Za pomocą FTP:
echo close | ftp 4.ifcfg.me | awk '{print $4; exit}'
lub używając externalip:
externalip ftp
Wszystkie powyższe można uruchomić za pomocą mojego skryptu externalip jako:
externalip dns
externalip http
externalip https
externalip telnet
externalip ftp
Teraz długa historia ...
Istnieje wiele opcji różnych serwerów zapewniających zewnętrzny adres IP, zwłaszcza za pośrednictwem HTTP zamieszczonego tutaj lub w innym miejscu.
Zrobiłem punkt odniesienia, aby sprawdzić, czy któryś z nich jest lepszy od innych i byłem zaskoczony wynikami. Np. Jeden z najszerzej polecanych ifconfig.me był dla mnie prawie zawsze najwolniejszy, czasami odpowiadając na wiele sekund. Wiele nie działa przez HTTPS lub działa, ale ma nieprawidłowe certyfikaty. Niektóre mają bardzo niespójne czasy reakcji.
Benchmarki
HTTP i HTTPS
To jest źródło mojego skryptu zewnętrznego testu porównawczego ip, którego użyłem:
Możesz uruchomić go samodzielnie, aby sprawdzić, które usługi wymienione tutaj są warte skorzystania:
wget https://raw.githubusercontent.com/rsp/scripts/master/externalip-benchmark
chmod a+x externalip-benchmark
./externalip-benchmark
Moje wyniki, które otrzymałem 03.04.2015 z Warszawy - adresy zostały zmienione, aby chronić niewinnych:
Najlepsze czasy odpowiedzi 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'
Najlepsze czasy odpowiedzi 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=''
(Uwaga: istnieją szybkie odpowiedzi z pustą treścią - są one nieprawidłowe).
Najlepsze średnie czasy pingowania:
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/
Oto wyniki, które otrzymałem 03.04.2015 z Amsterdamu:
Najlepsze czasy odpowiedzi 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'
Najlepsze czasy odpowiedzi 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=''
Najlepsze średnie czasy pingowania:
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/
(Pingi 999999 oznaczają 100% utraty pakietów.)
DNS
Dla porównania tutaj są czasy, które przyjmują inne metody - przetestowane 16.06.2015 z Warszawy i Amsterdamu.
Za pomocą:
time dig +short myip.opendns.com @resolver1.opendns.com
zwykle zajmuje (prawdziwy zegar ścienny) około:
- 0,035s z Warszawy
- 0,015s z Amsterdamu
W rzeczywistości istnieją cztery resolwery, których można użyć w ten sposób:
- resolver1.opendns.com
- resolver2.opendns.com
- resolver3.opendns.com
- resolver4.opendns.com
Wszystkie dają takie same czasy reakcji w Warszawie i Amsterdamie, ale może się tak nie zdarzyć w innych lokalizacjach.
Używając 208.67.222.222 - adres IP resolver1.opendns.com zamiast nazwy domeny jest szybszy:
- 0,023s z Warszawy
- 0,009s z Amsterdamu
ale może nie działać w przyszłości, jeśli adres IP kiedykolwiek się zmieni (chociaż może to być mało prawdopodobne w przypadku dobrze znanego programu rozpoznawania nazw DNS - być może powinienem użyć adresu IP w skrypcie externalip - proszę o komentarz).
Telnet
Telnet z poleceniem nc
lub telnet
(patrz wyżej) zwykle przyjmuje:
- 0,103 z Warszawy
- 0,035s z Amsterdamu
(Nie ma zauważalnej różnicy między poleceniami nc
a telnet
).
FTP
- 0,104 z Warszawy
- 0,036s z Amsterdamu
Nazwy domen
Wszystkie metody będą szybsze (zwłaszcza przy pierwszym uruchomieniu), gdy zamiast nazw domenowych usług zostaną użyte adresy IP (z wyjątkiem HTTP, który może korzystać z serwerów wirtualnych opartych na hoście i nie będzie działał z czystym adresem IP - nie testowane), ale przestanie działać, gdy usługi zmienią adres IP, więc może być szybsze, ale mniej przyszłościowe.
Komentarze
Jeśli zobaczysz kilka interesujących wyników z Twojej lokalizacji lub uważasz, że zamiast tych, które wybrałem, polecam innych hostów, napisz komentarz. Jeśli brakuje jakiejkolwiek ważnej usługi, prosimy o komentarz lub opublikowanie problemu w serwisie GitHub. Chciałbym na bieżąco aktualizować ten post, korzystając z aktualnego wyboru najskuteczniejszych usług.