tools.go_host
2020-12-23
Parent:75309599b04f
tools.go_host/src/host.go
. не верное использование сборочного инструментария
| 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 } |