ネットワークインターフェイスにクエリを実行すると、内部インスタンスの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 )
今後の参考のために。
さまざまなクラウドでパブリック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はこれらの上記のクラウドベンダーのグローバルメタデータサーバーであるため、異なるドメイン名を使用する必要はありません。
パブリックIPアドレスは、HTTPGETがhttp://metadata/computeMetadata/v1/instance/network-interfaces/0/access-configs/0/external-ip
の場合に取得できます。 ドキュメント に従って、Metadata-FlavorヘッダーをGoogleに設定する必要があります。