首页 > 解决方案 > 来自cli的aws ec2实例IP地址 aws ec2 describe-instances

问题描述

我想获取 ec2 实例的所有 IP 地址。我正在查看 CLI aws ec2 describe-instances,我看到我们有 2 个地方有 IP 地址。我知道每个接口都可以有自己的公共 IP/私有 IP,并且可以属于不同的子网,因此网络接口下的字段。但是我不清楚为什么我们在实例下有 IP 地址(公共/私有)和子网。该数据不会成为其中一个界面的一部分吗?这有什么意义吗。为什么这个重复?``

例如 aws ec2 描述实例

"Instances": [
    {
    *** I have IP address and subnet here ***
    "PrivateIpAddress": "10.0.0.19",
    "SubnetId": "subnet-12345678",
    "NetworkInterfaces": [
    ***I also have IP address, subnetId for each interface here**
    "PrivateIpAddress": "10.0.0.19",
    "SubnetId": "subnet-12345678",
    }
]

标签: amazon-web-servicesamazon-ec2

解决方案


您将不得不使用一些编程语言进行迭代,因为 NetworkInterfaces 是一个列表,PrivateIpAddresses 也是。

https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html

JQ会给你所需的输出。

aws ec2 describe-instances  --instance-id i-1234567890qwertyu --output json | jq .Reservations[].Instances[].NetworkInterfaces[].PrivateIpAddresses[].PrivateIpAddress -r
10.0.1.247
10.0.1.246

推荐阅读