Skip to content

Commit

Permalink
Added ip resolutiom from instance name
Browse files Browse the repository at this point in the history
  • Loading branch information
hamstah committed Nov 8, 2016
1 parent 103c8a8 commit 1b2a513
Showing 1 changed file with 60 additions and 0 deletions.
60 changes: 60 additions & 0 deletions ec2/ec2-ip-from-name/main.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
package main

import (
"flag"
"fmt"
"os"
"sort"

"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/ec2"
)

func main() {

instanceName := flag.String("name", "", "Name of the EC2 instance")
maxResults := flag.Int("max-results", 1, "Number of results")

region := flag.String("region", "eu-west-1", "AWS region")
flag.Parse()

if len(*instanceName) < 1 {
fmt.Println("Missing instance name")
os.Exit(1)
}

config := aws.Config{Region: aws.String(*region)}
session := session.New(&config)

svc := ec2.New(session)
params := &ec2.DescribeInstancesInput{
Filters: []*ec2.Filter{
{
Name: aws.String("tag:Name"),
Values: []*string{
aws.String(*instanceName),
},
},
},
}
resp, err := svc.DescribeInstances(params)

if err != nil {
fmt.Println(err.Error())
os.Exit(3)
}
ips := make([]string, len(resp.Reservations))
for index, reservation := range resp.Reservations {
instance := reservation.Instances[0]
ips[index] = *instance.PrivateIpAddress
}

sort.Strings(ips)
for index, ip := range ips {
if index >= *maxResults {
break
}
fmt.Println(ip)
}
}

0 comments on commit 1b2a513

Please sign in to comment.