除了使用DescribeAddressesRequest之外,还有更好的方法来查找正在运行的实例的IP地址吗?

时间:2015-03-24 11:11:27

标签: java amazon-ec2

正如标题所说,我正在使用DescribeAddressesRequest来查找创建后为实例提供的IP地址。我想知道有没有办法将IP分配给特定的实例(例如,实例ID i-b4b4d3d4)?

我正在使用的方法,如上所述,给了我数以千计的地址,这是不方便的,因为我总是对单个实例感兴趣......

2 个答案:

答案 0 :(得分:1)

如果您想知道某个实例的公共IP地址,那么您可以在setFilters()电话上使用DescribeAddressesRequest

以下是使用AWS CLI的等效内容:

aws ec2 describe-addresses --filter Name=instance-id,Values=i-abcd1234 --query 'Addresses[*].PublicIp'

答案 1 :(得分:1)

如果您在实例上,那么您将使用通过门户网站169.254.169.254提供的各种元数据。在Java中使用EC2MetadataUtilsHttpClient或:

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"