Add host tool.
This commit is contained in:
5
cmd/host/README
Normal file
5
cmd/host/README
Normal file
@@ -0,0 +1,5 @@
|
||||
host
|
||||
|
||||
This is a utility to display CNAME records and IPs for a hostname. It
|
||||
was born of my frustration in trying to figure out how to get the host(1)
|
||||
tool installed on Fedora.
|
||||
41
cmd/host/main.go
Normal file
41
cmd/host/main.go
Normal file
@@ -0,0 +1,41 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"log"
|
||||
"net"
|
||||
)
|
||||
|
||||
func lookupHost(host string) error {
|
||||
cname, err := net.LookupCNAME(host)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if cname != host {
|
||||
fmt.Printf("%s is a CNAME for %s\n", host, cname)
|
||||
host = cname
|
||||
}
|
||||
|
||||
addrs, err := net.LookupHost(host)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
for _, addr := range addrs {
|
||||
fmt.Printf("\t%s\n", addr)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func main() {
|
||||
flag.Parse()
|
||||
|
||||
for _, arg := range flag.Args() {
|
||||
if err := lookupHost(arg); err != nil {
|
||||
log.Println("%s: %s", arg, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user