0

我有一个Amazon实例。这个实例有两个接口。每个接口有两个弹性ips。因此,总共有4个弹性ips。Aws cli私有ip到公网ip映射

我想知道如何获得相关的私人IP给定一个公共IP或公共IP给定一个私人IP。

例如,说我的实例具有这些公共 - 私有地址:

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和公共IP或公共IP或私人IP与亚马逊实例使用vpc中的弹性ips私人IP之间的映射?

谢谢!

回答

0

是的,你可以使用下面的curl来实现你的用例。

curl --interface 80.0.0.0 ifconfig.me 
0

给一个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 

要运行的程序,给它一个点分四组的命令行参数代表的IP - 公共或私人 - 要找到匹配对于

或者要在AWS控制台GUI中查找此信息,请转至VPC页面以获取弹性IP。该表列出了公共可见IP以及与之相关的私有地址