0

Amazon インスタンスがあります。このインスタンスには 2 つのインターフェイスがあります。各インターフェイスには 2 つのエラスティック IP があります。したがって、合計で、このインスタンスには 4 つのエラスティック IP があります。

パブリック 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/

vpc でエラスティック IP を使用して、Amazon インスタンスのプライベート IP とパブリック IP、またはパブリック IP とプライベート IP の間のマッピングを見つける最良の方法は何ですか?

ありがとう!

4

2 に答える 2

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 でこの情報を見つけるには、エラスティック IP の VPC ページに移動します。この表には、一般に公開されている IP と、それに関連付けられているプラ​​イベート アドレスが一覧表示されています。

于 2016-09-16T15:51:28.143 に答える
0

はい、以下のcurlを使用してユースケースを実現できます。

curl --interface 80.0.0.0 ifconfig.me
于 2016-09-16T00:29:14.273 に答える