Eri*_*ond 103
重新启动时,EC2实例的IP地址不会更改.它们通常在非VPC EBS引导实例的停止/启动时更改.
请在此处查看我对相关问题的回答:
也就是说,您可以通过API调用您特定语言的DescribeInstances来查找私有和公共IP地址.
如果您在实例本身,您还可以使用简单的HTTP通过用户数据API找到IP地址:
http://instance-data/latest/meta-data/local-ipv4
http://instance-data/latest/meta-data/public-ipv4
Run Code Online (Sandbox Code Playgroud)
例如,
wget -qO- http://instance-data/latest/meta-data/public-ipv4
Run Code Online (Sandbox Code Playgroud)
建议使用弹性IP地址,以便为特定服务或服务器保持一致的(静态)外部IP地址.这些需要在停止/启动后重新分配给实例(但不是在重启后).
bul*_*ley 51
curl http://169.254.169.254/latest/meta-data/public-ipv4
Run Code Online (Sandbox Code Playgroud)
小智 38
公共IPv4地址也可以从EC2实例获得,如下所示:
curl checkip.amazonaws.com
Run Code Online (Sandbox Code Playgroud)
公共主机名是:
dig -x $(curl -s checkip.amazonaws.com) +short
Run Code Online (Sandbox Code Playgroud)
假设您不想分配弹性IP地址(并且有理由说明这并不总是一个解决方案),那么只需调用DescribeInstances重新启动的实例,该实例将返回包含公共IP地址在内的大量信息.
以下是有关该主题的AWS EC2 Java API文档.