Вы можете получить внешний IP-адрес из экземпляра Google Compute VM?

Запрос сетевого интерфейса будет возвращать только внутреннюю информацию об IP-адресе экземпляра.
Возможно ли получить информацию о внешнем IP-адресе откуда-либо внутри исполняемого экземпляра?

В качестве примера AWS имеет конечную точку REST метаданных, например:
curl http://169.254.169.254/latest/meta-data/public-ipv4

(источник: http://tech-queries.blogspot.co.uk/2011/06/how-to-get-public-ip-for-amazon-ec2.html)

Ответы

Ответ 1

Вы можете получить общедоступный IP-адрес с помощью HTTP GET http://metadata/computeMetadata/v1/instance/network-interfaces/0/access-configs/0/external-ip. Вы должны установить заголовок Metadata-Flavor в Google в соответствии с документацией.

Ответ 2

Вот ссылки для получения Public IPv4 в различных облаках.

Azure

curl -H Metadata:true "http://169.254.169.254/metadata/instance/network/interface/0/ipv4/ipAddress/0/publicIpAddress?api-version=2017-08-01&format=text"

AWS

curl http://169.254.169.254/latest/meta-data/public-ipv4

GCP

curl -H "Metadata-Flavor: Google" http://169.254.169.254/computeMetadata/v1/instance/network-interfaces/0/access-configs/0/external-ip

Поскольку 169.254.169.254 является глобальным сервером метаданных для указанных выше поставщиков облачных услуг, нет необходимости использовать разные доменные имена.