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