tools.go_host

Yohn Y. 2020-12-22

0:520c8621f5ee Go to Latest

tools.go_host/host.go

.. init

History
awgur@0 1 package main
awgur@0 2
awgur@0 3 import (
awgur@0 4 "fmt"
awgur@0 5 "net"
awgur@0 6 "os"
awgur@0 7
awgur@0 8 idna "golang.org/x/net/idna"
awgur@0 9 )
awgur@0 10
awgur@0 11 func say_err(msg interface{}) {
awgur@0 12 _, err := fmt.Fprintf(os.Stderr, "ERROR: %s\n", msg)
awgur@0 13 if err != nil {
awgur@0 14 panic(err)
awgur@0 15 }
awgur@0 16
awgur@0 17 os.Exit(1)
awgur@0 18 }
awgur@0 19
awgur@0 20 func main() {
awgur@0 21 if len(os.Args) < 2 {
awgur@0 22 say_err("Need hostname or IP as argument")
awgur@0 23 }
awgur@0 24
awgur@0 25 arg := os.Args[1]
awgur@0 26
awgur@0 27 ip := net.ParseIP(arg)
awgur@0 28
awgur@0 29 if ip != nil {
awgur@0 30 res, err := net.LookupAddr(ip.String())
awgur@0 31 if err != nil {
awgur@0 32 say_err(err)
awgur@0 33 }
awgur@0 34
awgur@0 35 for _, i := range res {
awgur@0 36 fmt.Println(i)
awgur@0 37 }
awgur@0 38
awgur@0 39 } else {
awgur@0 40 hostname, err := idna.ToASCII(arg)
awgur@0 41 if err != nil {
awgur@0 42 say_err(err)
awgur@0 43 }
awgur@0 44
awgur@0 45 res, err := net.LookupHost(hostname)
awgur@0 46 if err != nil {
awgur@0 47 say_err(err)
awgur@0 48 }
awgur@0 49
awgur@0 50 for _, i := range res {
awgur@0 51 fmt.Println(i)
awgur@0 52 }
awgur@0 53
awgur@0 54 }
awgur@0 55
awgur@0 56 }