从运行实例中获取弹性IP

hoc*_*ave 4 java amazon-ec2 amazon-web-services

从在EC2实例上运行的java应用程序,我想知道从管理控制台手动分配的我自己的弹性IP地址.有没有办法为此查询EC2 API?

Mat*_*ean 7

如果你使用linux ec2实例,这应该工作:

命令:

curl http://169.254.169.254/latest/meta-data/public-ipv4
Run Code Online (Sandbox Code Playgroud)

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;
    }
}
Run Code Online (Sandbox Code Playgroud)