List public IP addresses of EC2 instances

后端 未结 5 811
無奈伤痛
無奈伤痛 2020-12-13 08:46

I want to list the public IP addresses of my EC2 instances using Bash, separated by a delimiter (space or a new-line).

I tried to pipe the output to jq with aw

相关标签:
5条回答
  • 2020-12-13 09:08

    The below command would list the IP addresses of all your running EC2 instances

    aws ec2 describe-instances | grep PublicIpAddress | grep -o -P "\d+\.\d+\.\d+\.\d+" | grep -v '^10\.'
    

    Hope that answers your query...

    But this works without all the errors about access:

    wget -qO- http://instance-data/latest/meta-data/public-ipv4/|grep .
    
    0 讨论(0)
  • 2020-12-13 09:16
    • Filter on running instances (you can drop that part if you don't need it)
    • Query for each PublicIPaddress and the Name Tag, handling when Name isn't set
    aws ec2 describe-instances \
      --filter "Name=instance-state-name,Values=running" \
      --query "Reservations[*].Instances[*].[PublicIpAddress, Tags[?Key=='Name'].Value|[0]]" \
      --output text
    
    0 讨论(0)
  • 2020-12-13 09:20

    Directly from the aws cli:

    aws ec2 describe-instances \
      --query "Reservations[*].Instances[*].PublicIpAddress" \
      --output=text
    
    0 讨论(0)
  • 2020-12-13 09:28

    You can use instance metadata so you can run the following command from the ec2 instance:

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

    and it will give you the public IP of the instance. If you want the private IP, you will run

    curl http://169.254.169.254/latest/meta-data/local-ipv4
    
    0 讨论(0)
  • 2020-12-13 09:28
    aws ec2 describe-instances --query "Reservations[].Instances[][PublicIpAddress]"
    

    Refer: http://docs.aws.amazon.com/cli/latest/userguide/controlling-output.html

    0 讨论(0)
提交回复
热议问题