tools.go_host
2020-12-22
tools.go_host/host.go
.. init
| 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 } |