除了使用 DescribeAddressesRequest 之外,是否有更好的方法来查找 运行 实例的 IP 地址?
Is there a better way to find IP address of a running instance other than using DescribeAddressesRequest?
正如标题所说,我正在使用 DescribeAddressesRequest 来找出实例创建后分配给它的 IP 地址。我想知道有没有办法将 IP 分配给 特定的 实例(例如,实例 ID i-b4b4d3d4
)?
如上所述,我正在使用的方法可能为我提供了数千个地址,这很不方便,因为我总是对单个实例感兴趣...
如果您想知道实例的 Public IP 地址,则可以在 DescribeAddressesRequest
调用中使用 setFilters()
。
下面是使用 AWS CLI 的等效项:
aws ec2 describe-addresses --filter Name=instance-id,Values=i-abcd1234 --query 'Addresses[*].PublicIp'
如果您在实例上,那么您将使用通过 169.254.169.254 的门户网站提供的各种元数据。使用 EC2MetadataUtils
或 Java 中的 HttpClient
或:
curl -o - http://169.254.169.254/latest/meta-data/public-ipv4
要获取完整的元数据列表,请使用:
curl -o - http://169.254.169.254/latest/meta-data/
如果您正在谈论 过滤 Java 中的 DescribeAddressesRequest
那么您可以添加过滤器。我认为这样的事情应该有效:
DescribeAddressesRequest request =
new DescribeAddressesRequest().withFilters(
Arrays.asList(new Filter().withName("resource-id").withValues("i-b4b4d3d4")));
可能是 "instance-id"
。
正如标题所说,我正在使用 DescribeAddressesRequest 来找出实例创建后分配给它的 IP 地址。我想知道有没有办法将 IP 分配给 特定的 实例(例如,实例 ID i-b4b4d3d4
)?
如上所述,我正在使用的方法可能为我提供了数千个地址,这很不方便,因为我总是对单个实例感兴趣...
如果您想知道实例的 Public IP 地址,则可以在 DescribeAddressesRequest
调用中使用 setFilters()
。
下面是使用 AWS CLI 的等效项:
aws ec2 describe-addresses --filter Name=instance-id,Values=i-abcd1234 --query 'Addresses[*].PublicIp'
如果您在实例上,那么您将使用通过 169.254.169.254 的门户网站提供的各种元数据。使用 EC2MetadataUtils
或 Java 中的 HttpClient
或:
curl -o - http://169.254.169.254/latest/meta-data/public-ipv4
要获取完整的元数据列表,请使用:
curl -o - http://169.254.169.254/latest/meta-data/
如果您正在谈论 过滤 Java 中的 DescribeAddressesRequest
那么您可以添加过滤器。我认为这样的事情应该有效:
DescribeAddressesRequest request =
new DescribeAddressesRequest().withFilters(
Arrays.asList(new Filter().withName("resource-id").withValues("i-b4b4d3d4")));
可能是 "instance-id"
。