我有一个Amazon实例。此实例有两个接口。每个接口有两个弹性ips。因此,该实例总共有4个弹性ips。
我想知道如何获得关联的内网ip和关联的公网ip。
例如,假设我的实例具有以下公有-私有ips:
80.0.0.0 - 10.0.0.0
80.0.0.1 - 10.0.0.1
80.0.0.2 - 10.0.0.2
80.0.0.3 - 10.0.0.3我想知道有没有办法这样做
aws ip-mapping 80.0.0.0其中返回10.0.0.0
或者,类似这样的代码:
curl http://169.254.169.254/latest/meta-data/network/interfaces/ip-mapping/80.0.0.0/在私有网络中使用弹性公网ip查找amazon实例的内网ip与公网ip或公网ip与内网ip的映射关系的最佳方式是什么?
谢谢!
发布于 2016-09-16 08:29:14
是的,你可以使用下面的curl来实现你的用例。
curl --interface 80.0.0.0 ifconfig.me发布于 2016-09-16 23:51:28
赋予ec2描述ec2实例的权限,确保安装了boto3,然后该程序应该能够在给定公共实例的情况下识别私有实例,或者在给定私有实例的情况下识别公共实例。
没有保修,没有经过广泛的测试
#!/usr/bin/python
import sys
(theother) = (sys.argv[1])
import boto3
e = boto3.client('ec2').describe_instances()
possible = {}
for r in e['Reservations']:
for i in r['Instances']:
if 'PrivateIpAddress' in i:
p = i['PrivateIpAddress']
if 'NetworkInterfaces' in i:
for n in i['NetworkInterfaces']:
if 'Association' in n and 'PublicIp' in n['Association']:
u = n['Association']['PublicIp']
if u == theother or p == theother:
print "found"
possible['id'] = i['InstanceId']
possible['public'] = u
possible['private'] = p
break
print possible要运行该程序,给它一个虚线四元组的命令行arg,该四元组表示您想要为其查找匹配的ip - public或private
或者,要在AWS控制台GUI中查找此信息,请转到弹性IP的VPC页面。该表列出了公共可见的IP及其关联的私有地址
https://stackoverflow.com/questions/39521902
复制相似问题