Вы можете получить внешний 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 является глобальным сервером метаданных для указанных выше поставщиков облачных услуг, нет необходимости использовать разные доменные имена.