External IP

Когда работаем с серверами, поднятыми в облачной инфраструктуре, машины часто имеют статический IP-адрес, но полученный случайным образом из пула адресов. То есть заранее мы можем и не знать какой адрес получит наш сервера. Есть случаи, когда нам требуется знать реальный IP адрес, с которым машина выходит в сеть, например при автоматизации развёртывания firewall-а, чтобы не закрывать самому себе доступ к удалённому ресурсу, да и много когда ещё.
Каждый раз узнавать и приписывать для каждой машины в скриптах такой адрес - не вариант.

Самый простой, способ - curl ifconfig.co. В ответ придёт наш внешний IP-адрес.
Однако последнее время ifconfig.co стал работать ненадёжно - вылетать, возвращая HTML с ошибками в ответ. Более надёжный вариант - воспользоваться внешним resolver-ом, который и подскажет нам реальный адрес.

Для этих целей в Linux существует команда Dig (Domain Information Groper) - инструмент для работы с DNS серверами.
Запрос внешнего IP-адреса выглядит так:

dig +short myip.opendns.com @resolver1.opendns.com

В ответ вернётся наш IP-адрес. В качестве resolver-a можно использовать и Google DNS.

Эту команду можно включать в скрипты. Например, создать переменные среды для включения куда-нибудь (Docker run, etc.):

 echo TRUSTED_IPS=11.22.33.44,$(dig +short myip.opendns.com @resolver1.opendns.com) > /tmp/tusted_ips

Ещё немного полезной информации: https://superuser.com/questions/812664/nslookup-command-line-with-a-record-ip-as-sole-output