繁体   English   中英

如何使用Python boto判断AWS Elastic Network Interface(ENI)是否具有公共IP地址?

[英]How to tell if AWS Elastic Network Interface (ENI) has a public IP address using Python boto?

我正在审核安全组,现在我的任务是找到没有公共IP地址的ENI,并且带有引用公共IP地址的入站安全组规则。

我有遍历ENI的代码,并查看了每个ENI附带的安全组,我希望将其回收。 这是代码:

used_sgs = {}
enis = ec2_conn.get_all_network_interfaces()
for eni in enis:
    eni_sgs = eni.groups
    for sg in eni_sgs:
        sgn = sg.name
        if sgn not in used_sgs:
           used_sgs[sgn] = 0
        used_sgs[sgn]+=1

我是否可以嗅探一下ENI是否具有公共IP的属性? 还是我必须采取其他方法(遍历实例,或获取ENI附件,或其他方法)?

eni.publicIp

并非所有enis都有与它们关联的publicIp。 因此,检查publicIp属性是否存在,然后获取该值

for eni in enis:
  if hasattr(eni, 'publicIp') and eni.publicIp:
    print eni.id, eni.publicIp

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM