4

EC2 インスタンスで実行されている Java アプリケーションから、管理コンソールから手動で割り当てられた自分のエラスティック IP アドレスを知りたいです。これを EC2 API に照会する方法はありますか?

4

3 に答える 3

7

Linux ec2 インスタンスを使用している場合、これは機能するはずです。

指示:

curl http://169.254.169.254/latest/meta-data/public-ipv4

Java コード:

public static String getIP() throws IOException, InterruptedException {
    Process p = Runtime.getRuntime().exec("curl http://169.254.169.254/latest/meta-data/public-ipv4");
    int returnCode = p.waitFor();
    if ( returnCode == 0 ) {
        BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));
        String ip = r.readLine();
        r.close();
        return ip;
    }
    else {
        //handle error
        return null;
    }
}
于 2012-04-27T17:49:11.857 に答える
2

代替 (最も明確な解決策ではありません) は、このような外部サービスを要求して、パブリック IP を知ることです。 http://whatismyip.org/

編集: json またはテキスト形式を返す素敵なサービスを見つけました。https://www.ipify.org/

于 2012-04-27T17:48:37.683 に答える
1

DescribeInstancesを呼び出すことができます- パブリック IP アドレス (ip-addressフィルター)を含む一連の情報を返します。

...
DescribeInstancesRequest dis = new DescribeInstancesRequest();   
DescribeInstancesResult disresult = ec2.describeInstances(dis);
...
于 2012-04-27T17:24:08.920 に答える