Files
iPilot/Main.go

55 lines
1.2 KiB
Go

package main
import (
"flag"
"fmt"
"os"
)
func main() {
var input string
var wantPrefixes bool
var wantHeader bool
flag.StringVar(&input, "i", "", "IP address or domain")
flag.BoolVar(&wantPrefixes, "p", false, "print BGP prefixes")
flag.BoolVar(&wantHeader, "b", true, "enable/disable header")
flag.Usage = func() {
fmt.Printf("Usage of iPilot: \n")
fmt.Printf("Example: iPilot -b=false -i=me -p \n")
fmt.Printf(" -b bool enable/disable header (default true)\n")
fmt.Printf(" -h bool view help\n")
fmt.Printf(" -i string IP address or domain\n")
fmt.Printf(" -p bool print BGP prefixes (default false)\n")
}
flag.Parse()
if wantHeader {
printHeader()
}
if input == "" {
fmt.Println("FATAL: No IP address or domain name was specified.")
os.Exit(1)
} else {
if input == "me" {
input = getLocalIP()
}
var isIPCorrect bool = checkIPSyntax(input)
if isIPCorrect == true {
printIPInfo(input, wantPrefixes)
} else {
ipaddress := resolveDNSHostname(input)
if checkIPSyntax(ipaddress) == true {
fmt.Println("Domain Name: ", input)
printIPInfo(ipaddress, wantPrefixes)
} else {
fmt.Println("Invalid query.")
}
}
}
}