konsole

Linux: Jak zjistit veřejnou IP adresu v terminálu?

Dnes to bude jednoduché, ale překvapivě se tento problém poměrně hojně vyskytuje v běžných provozních podmínkách.

Přepokládejme následující scénář, máme Linux systém schovaný za NAT , tedy na rozhraní máme neveřejnou lokální IP adresu a funkční síťování v podobě výchozí brány a DNS, přístup k mašíne je skrze ssh, neni k dispozici grafické prostředí, pouze terminál.

Jaká je naše veřejná IP adresa, jak nás vidí svět?

Jednoduše, nejčastěji používám nástroj curl, telnet bohužel, bohudík už přestává být standartní současní distribucí.

havel@havel-machine:~$ curl ifconfig.me
46.167.201.250
(používám hlavně toto neb se mi to dobře pamatuje)

Další funkční služby podobné ifconfig.me.

  • havel@havel-machine:~$ curl ip-addr.es
  • havel@havel-machine:~$ curl icanhazip.com
  • havel@havel-machine:~$ curl ident.me
  • havel@havel-machine:~$ curl whatismyip.akamai.com

Nakonec pár dalších netradičních možností aneb jde to i jinak a proto Linux* milujeme.

  • havel@havel-machine:~$ dig +short myip.opendns.com @resolver1.opendns.com
  • havel@havel-machine:~$ curl -s checkip.dyndns.org | sed ‘s/.*Moje  adresa: \([0-9\.]*\).*/\1/g’
  • havel@havel-machine:~$ wget -q -O – checkip.dyndns.org | sed -e ‘s/[^[:digit:]\|.]//g’

A to je vše, dalších způsobů bude jistě na “tuny”.

Hezké je např. toto velmi jednuché API http://api.ident.me.

Díky za Váš čas. František Havel