如何使用 Python boto 判断 AWS 弹性网络接口 (ENI) 是否具有 public IP 地址?
How to tell if AWS Elastic Network Interface (ENI) has a public IP address using Python boto?
我正在审核安全组,现在我的任务是找到没有 public IP 地址且入站安全组规则引用 public IP 地址的 ENI。
我有遍历 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 是否具有 public IP?或者我是否必须采取其他路线(遍历实例,或获取 ENI 附件,或其他方式)?
eni.publicIp
并不是所有的 enis 都有关联的 publicIp。所以检查 publicIp 属性是否存在然后获取该值
for eni in enis:
if hasattr(eni, 'publicIp') and eni.publicIp:
print eni.id, eni.publicIp
我正在审核安全组,现在我的任务是找到没有 public IP 地址且入站安全组规则引用 public IP 地址的 ENI。
我有遍历 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 是否具有 public IP?或者我是否必须采取其他路线(遍历实例,或获取 ENI 附件,或其他方式)?
eni.publicIp
并不是所有的 enis 都有关联的 publicIp。所以检查 publicIp 属性是否存在然后获取该值
for eni in enis:
if hasattr(eni, 'publicIp') and eni.publicIp:
print eni.id, eni.publicIp