簡體   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