查询网络接口只会返回内部实例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)
答案 0 :(得分:18)
您可以获取HTTP GET为http://metadata/computeMetadata/v1/instance/network-interfaces/0/access-configs/0/external-ip
的公共IP地址。您必须按照the documentation将Metadata-Flavor标头设置为Google。
答案 1 :(得分:13)
以供将来参考。
这里是在各种云上获取公共IPv4的链接。
天蓝色
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是上述云供应商的全局元数据服务器,因此无需使用其他域名。