Using Amazon CLI, is there a way to get the public ip address of the current EC2? I'm just looking for the single string value, so not the json response describe-addresses returns.
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
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
回答2:
curl http://checkip.amazonaws.com
this returns the public ip address.
回答3:
If you are inside the instance -
$ curl icanhazip.com
162.202.17.123
回答4:
Get attached InstanceID with PublicIP.
aws ec2 describe-network-interfaces --query NetworkInterfaces[*].[Attachment.[InstanceId],Association.[PublicIp]] --output=json