tools.go_host

Yohn Y. 2020-12-23 Parent:520c8621f5ee Child:ed90414559b7

1:75309599b04f Browse Files

+ Сортировка вывода

.hgignore _build/make.sh host.go src/host.go

     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/.hgignore	Wed Dec 23 11:42:02 2020 +0300
     1.3 @@ -0,0 +1,2 @@
     1.4 +syntax: glob
     1.5 +builded_bins/*
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/_build/make.sh	Wed Dec 23 11:42:02 2020 +0300
     2.3 @@ -0,0 +1,17 @@
     2.4 +#!/bin/sh
     2.5 +my_path="$(dirname "$(readlink -f "$0")")"
     2.6 +app_dir="$(dirname "$my_path")"
     2.7 +
     2.8 +src="$app_dir/src"
     2.9 +res="$app_dir/builded_bins"
    2.10 +
    2.11 +mkdir -p "$res"
    2.12 +
    2.13 +build () {
    2.14 +    go build -o "$1" -v -x
    2.15 +}
    2.16 +
    2.17 +cd "$src"
    2.18 +go fmt
    2.19 +build "$res/host"
    2.20 +GOOS=windows GOARCH=amd64 build "$res/host.exe"
     3.1 --- a/host.go	Tue Dec 22 23:36:40 2020 +0300
     3.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.3 @@ -1,56 +0,0 @@
     3.4 -package main
     3.5 -
     3.6 -import (
     3.7 -	"fmt"
     3.8 -	"net"
     3.9 -	"os"
    3.10 -
    3.11 -	idna "golang.org/x/net/idna"
    3.12 -)
    3.13 -
    3.14 -func say_err(msg interface{}) {
    3.15 -	_, err := fmt.Fprintf(os.Stderr, "ERROR: %s\n", msg)
    3.16 -	if err != nil {
    3.17 -		panic(err)
    3.18 -	}
    3.19 -
    3.20 -	os.Exit(1)
    3.21 -}
    3.22 -
    3.23 -func main() {
    3.24 -	if len(os.Args) < 2 {
    3.25 -		say_err("Need hostname or IP as argument")
    3.26 -	}
    3.27 -
    3.28 -	arg := os.Args[1]
    3.29 -
    3.30 -	ip := net.ParseIP(arg)
    3.31 -
    3.32 -	if ip != nil {
    3.33 -		res, err := net.LookupAddr(ip.String())
    3.34 -		if err != nil {
    3.35 -			say_err(err)
    3.36 -		}
    3.37 -
    3.38 -		for _, i := range res {
    3.39 -			fmt.Println(i)
    3.40 -		}
    3.41 -
    3.42 -	} else {
    3.43 -		hostname, err := idna.ToASCII(arg)
    3.44 -		if err != nil {
    3.45 -			say_err(err)
    3.46 -		}
    3.47 -
    3.48 -		res, err := net.LookupHost(hostname)
    3.49 -		if err != nil {
    3.50 -			say_err(err)
    3.51 -		}
    3.52 -
    3.53 -		for _, i := range res {
    3.54 -			fmt.Println(i)
    3.55 -		}
    3.56 -
    3.57 -	}
    3.58 -
    3.59 -}
     4.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.2 +++ b/src/host.go	Wed Dec 23 11:42:02 2020 +0300
     4.3 @@ -0,0 +1,60 @@
     4.4 +package main
     4.5 +
     4.6 +import (
     4.7 +	"fmt"
     4.8 +	"net"
     4.9 +	"os"
    4.10 +	"sort"
    4.11 +
    4.12 +	idna "golang.org/x/net/idna"
    4.13 +)
    4.14 +
    4.15 +func say_err(msg interface{}) {
    4.16 +	_, err := fmt.Fprintf(os.Stderr, "ERROR: %s\n", msg)
    4.17 +	if err != nil {
    4.18 +		panic(err)
    4.19 +	}
    4.20 +
    4.21 +	os.Exit(1)
    4.22 +}
    4.23 +
    4.24 +func out_res(items []string) {
    4.25 +	sort.Strings(items)
    4.26 +	for _, i := range items {
    4.27 +		fmt.Println(i)
    4.28 +	}
    4.29 +}
    4.30 +
    4.31 +func main() {
    4.32 +	if len(os.Args) < 2 {
    4.33 +		say_err("Need hostname or IP as argument")
    4.34 +	}
    4.35 +
    4.36 +	arg := os.Args[1]
    4.37 +
    4.38 +	ip := net.ParseIP(arg)
    4.39 +
    4.40 +	if ip != nil {
    4.41 +		res, err := net.LookupAddr(ip.String())
    4.42 +		if err != nil {
    4.43 +			say_err(err)
    4.44 +		}
    4.45 +
    4.46 +		out_res(res)
    4.47 +
    4.48 +	} else {
    4.49 +		hostname, err := idna.ToASCII(arg)
    4.50 +		if err != nil {
    4.51 +			say_err(err)
    4.52 +		}
    4.53 +
    4.54 +		res, err := net.LookupHost(hostname)
    4.55 +		if err != nil {
    4.56 +			say_err(err)
    4.57 +		}
    4.58 +
    4.59 +		out_res(res)
    4.60 +
    4.61 +	}
    4.62 +
    4.63 +}