56 lines
913 B
Go
56 lines
913 B
Go
package main
|
|
|
|
import (
|
|
"flag"
|
|
"fmt"
|
|
"strings"
|
|
|
|
"github.com/ryanehamil/lookupip/src/ipapi"
|
|
)
|
|
|
|
var verbose bool = false
|
|
var detail bool
|
|
var ip string
|
|
var properties []string
|
|
|
|
func main() {
|
|
parseFlags()
|
|
|
|
if verbose {
|
|
fmt.Println("Verbose mode on")
|
|
}
|
|
data, err := ipapi.Lookup(ip, properties)
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
return
|
|
}
|
|
|
|
result := ipapi.GetProperties(data, properties, detail)
|
|
|
|
fmt.Println(result)
|
|
}
|
|
|
|
func parseFlags() {
|
|
_ip := flag.String("ip", "", "IP address to lookup")
|
|
_props := flag.String("p", "Country", "Properties to retrieve")
|
|
flag.BoolVar(&detail, "d", false, "Show Detail")
|
|
_verbose := flag.Bool("v", false, "Verbose output")
|
|
flag.Parse()
|
|
_loose := flag.Args()
|
|
|
|
if *_verbose {
|
|
verbose = true
|
|
}
|
|
if *_ip == "" {
|
|
if len(_loose) == 0 {
|
|
} else {
|
|
ip = _loose[0]
|
|
}
|
|
} else {
|
|
ip = *_ip
|
|
}
|
|
if _props != nil {
|
|
properties = strings.Split(*_props, ",")
|
|
}
|
|
}
|