如何判断我的AWS账户是否拥有" Python中的给定IP地址

时间:2014-10-21 18:00:05

标签: python amazon-web-services amazon-ec2 boto

所以我有一个公共IP地址列表,我想知道它们是否是与我们帐户关联的公共IP。我知道我可以将每个IP粘贴到AWS EC2控制台的搜索框中。但是我想通过Python程序自动化这个过程。

我告诉你在控制台中可以做的任何事情,你可以通过CLI /程序来做,但是根据它是否是与我们的帐户关联的公共IP,我可以使用哪个函数简单地返回结果? ?

据我所知,我可能需要进行两次搜索,其中一次实例(包括非EIP公共IP)和一种EIP(其中包括我们仍然拥有的解除关联的EIP)。

但是怎么样?

2 个答案:

答案 0 :(得分:2)

使用boto,您需要做的第一件事是调用connect_to_region以连接到您感兴趣的AWS区域。(如果您在多个地区有实例,那么您需要逐个迭代每个区域。)

连接到某个区域后,您需要调用get_only_instances,这将返回实例对象列表。浏览这些对象的列表,查看实例公共IP的ip_address字段(或私有实例的private_ip_address字段)。

然后,您需要致电get_all_addresses以获取弹性IP列表。在这种情况下,您将需要循环遍历EIP对象列表并查看public_ip字段。如果你想确定EIP与哪个实例相关联(如果有的话),那么instance_id字段就会这样做。

答案 1 :(得分:0)

以下是我提出的方法:

查找所有IP以查看它们是否是与我们的AWS账户关联的EIP

  1. 获取我们所有EIP的列表
  2. 获取所有实例的列表
  3. 构建所有实例公共IP的列表
  4. 合并列表/使用相同列表
  5. 根据此列表检查所需的IP。
  6. 欢迎评论。