tools.go_host
2020-12-22
Child:75309599b04f
0:520c8621f5ee Browse Files
.. init
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/host.go Tue Dec 22 23:36:40 2020 +0300 1.3 @@ -0,0 +1,56 @@ 1.4 +package main 1.5 + 1.6 +import ( 1.7 + "fmt" 1.8 + "net" 1.9 + "os" 1.10 + 1.11 + idna "golang.org/x/net/idna" 1.12 +) 1.13 + 1.14 +func say_err(msg interface{}) { 1.15 + _, err := fmt.Fprintf(os.Stderr, "ERROR: %s\n", msg) 1.16 + if err != nil { 1.17 + panic(err) 1.18 + } 1.19 + 1.20 + os.Exit(1) 1.21 +} 1.22 + 1.23 +func main() { 1.24 + if len(os.Args) < 2 { 1.25 + say_err("Need hostname or IP as argument") 1.26 + } 1.27 + 1.28 + arg := os.Args[1] 1.29 + 1.30 + ip := net.ParseIP(arg) 1.31 + 1.32 + if ip != nil { 1.33 + res, err := net.LookupAddr(ip.String()) 1.34 + if err != nil { 1.35 + say_err(err) 1.36 + } 1.37 + 1.38 + for _, i := range res { 1.39 + fmt.Println(i) 1.40 + } 1.41 + 1.42 + } else { 1.43 + hostname, err := idna.ToASCII(arg) 1.44 + if err != nil { 1.45 + say_err(err) 1.46 + } 1.47 + 1.48 + res, err := net.LookupHost(hostname) 1.49 + if err != nil { 1.50 + say_err(err) 1.51 + } 1.52 + 1.53 + for _, i := range res { 1.54 + fmt.Println(i) 1.55 + } 1.56 + 1.57 + } 1.58 + 1.59 +}