获取当前 EC2实例上的公共 IP 地址

使用 Amazon CLI,是否有办法获得当前 EC2的公共 IP 地址?我只是在寻找单个字符串值,所以不会返回 json 响应 description-address。

84764 次浏览

The AWS Command-Line Interface (CLI) can be used to return information on any/all Amazon EC2 instances, eg:

$ aws ec2 describe-instances --instance-ids i-0c9c9b44b --query 'Reservations[*].Instances[*].PublicIpAddress' --output text


54.232.200.77

If you are seeking information about the EC2 instance from which you are executing the command, then the current IP address can be obtained via the instance metadata service:

$ curl http://169.254.169.254/latest/meta-data/


ami-id
ami-launch-index
ami-manifest-path
block-device-mapping/
hostname
iam/
instance-action
instance-id
instance-type
local-hostname
local-ipv4
mac
metrics/
network/
placement/
profile
public-hostname
public-ipv4
public-keys/
reservation-id
security-groups
services/

So, the private IP address is available via:

$ curl http://169.254.169.254/latest/meta-data/local-ipv4


172.31.10.221

The public IP address is available via:

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


54.232.200.77
curl http://checkip.amazonaws.com

this returns the public ip address.

If you are inside the instance -

$ curl icanhazip.com
162.202.17.123

here is one more way

$ curl -s ifconfig.me
162.202.17.123

these methods are not limited to just AWS.

Get attached InstanceID with PublicIP.

aws ec2 describe-network-interfaces --query NetworkInterfaces[*].[Attachment.[InstanceId],Association.[PublicIp]] --output=json

From inside instnace type following command :

  curl -s v4.ident.me