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