如何获取我的 GCP 组织中的所有外部 IP 地址?

cal*_*k93 9 google-cloud-platform

我想获取我的 GCP 组织中的所有外部 IP 地址。此信息似乎可以在 GCP Console 的 VPC 网络 > 外部 IP 地址下找到,但我似乎找不到导出此信息的 API 或方法。

我尝试过 GCLOUD 命令行工具,但它只列出静态 IP 地址。我还想要临时地址:gcloud compute addresses list

Go GCP 计算 API 执行相同的操作。

Joh*_*ley 6

Google Cloud 中有两种类型的公共(外部)IP 地址:区域和全球。

以下命令使用 Windows 语法。修改每个命令的项目ID和区域列表。

此命令将列出指定区域的区域地址:

gcloud compute addresses list  --project development --filter="region:( us-west1, us-west2 )"
Run Code Online (Sandbox Code Playgroud)

此命令将列出全局地址:

gcloud compute addresses list --global --project development
Run Code Online (Sandbox Code Playgroud)

请注意,必须对每个项目重复此操作。组织没有选择。

要列出您的凭据有权访问的项目:

gcloud projects list
Run Code Online (Sandbox Code Playgroud)

这并不意味着此列表中的所有项目都是您组织的一部分。凭证可以作为成员帐户添加到组织外部的项目中。

这并不意味着列出了您组织中的所有项目。只有有权列出/访问项目的人。您的组织可能正在使用文件夹。

以下链接是 API 的链接:

方法:地址.列表


小智 5

正如之前的回复中提到的,没有简单的方法可以获取该信息。

我在自己的项目中尝试了一些命令,我​​可以列出我的实例上的所有外部临时 IP:

gcloud compute instances describe INTANCE_NAME --format='get(networkInterfaces[0].accessConfigs[0].natIP)' --zone ZONE
gcloud compute instances list --format='table(EXTERNAL_IP)'
Run Code Online (Sandbox Code Playgroud)

我还发现了另一个公共跟踪器,他们的要求几乎与您提到的相同,您可以看一下并在那里发表评论。


Jus*_*tin 0

Google Cloud 使用各种随时间变化的 IP 地址。根据此链接,最接近的方法是使用 DNS 查找命令(nslookupdighost)手动清理多个地址并与静态地址进行比较并挑选出临时地址。

话虽如此,该功能有一个公共跟踪器,正在评估是否可以将标志添加到命令中gcloud compute addresses list以列出临时 IP: https ://issuetracker.google.com/119178618

这是另一个相关主题:https ://stackoverflow.com/a/53650099