tools.go_host

Yohn Y. 2020-12-23 Parent:75309599b04f

2:ed90414559b7 Go to Latest

tools.go_host/src/host.go

. не верное использование сборочного инструментария

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