Mercurial > mercurial > hgweb_golang.cgi
comparison src/ut/main.go @ 20:0a6541999b53
ut: add netcat.
author | pyon@macmini |
---|---|
date | Sat, 23 Jun 2018 18:23:54 +0900 |
parents | 8008046c8d76 |
children | 4232b4cbeeb5 |
comparison
equal
deleted
inserted
replaced
19:8008046c8d76 | 20:0a6541999b53 |
---|---|
14 "fmt" | 14 "fmt" |
15 "io" | 15 "io" |
16 "io/ioutil" | 16 "io/ioutil" |
17 "log" | 17 "log" |
18 "mime/multipart" | 18 "mime/multipart" |
19 "net" | |
20 "net/http" | 19 "net/http" |
21 "os" | 20 "os" |
22 "runtime" | 21 "runtime" |
23 "strconv" | 22 "strconv" |
24 "strings" | 23 "strings" |
25 "time" | 24 "time" |
26 | 25 |
27 "./lu" | 26 "./lu" |
27 "./nw" | |
28 ) | 28 ) |
29 | 29 |
30 var version = "1.04" | 30 var version = "1.05" |
31 | 31 |
32 func main() { | 32 func main() { |
33 | 33 |
34 var getfile = flag.Bool( "g", false, "get a file from site." ) // ok | 34 var getfile = flag.Bool( "g", false, "get a file from site." ) // ok |
35 var putfile = flag.Bool( "G", false, "put a file to site." ) // ok | 35 var putfile = flag.Bool( "G", false, "put a file to site." ) // ok |
38 var noprefix = flag.Bool( "n", false, "not add prefix(YYYYMMDDhhmm_) to filename." ) // ok | 38 var noprefix = flag.Bool( "n", false, "not add prefix(YYYYMMDDhhmm_) to filename." ) // ok |
39 | 39 |
40 var wget = flag.Bool( "w", false, "little wget tool." ) // ok | 40 var wget = flag.Bool( "w", false, "little wget tool." ) // ok |
41 var wc_l = flag.Bool( "l", false, "little wc -l tool." ) // ok | 41 var wc_l = flag.Bool( "l", false, "little wc -l tool." ) // ok |
42 var catn = flag.Bool( "C", false, "little cat -n tool." ) // ok | 42 var catn = flag.Bool( "C", false, "little cat -n tool." ) // ok |
43 var reverse = flag.Bool( "q", false, "little tac tool. ( reverse file )" ) // ok | 43 var reverse = flag.Bool( "R", false, "little tac tool. ( reverse file )" ) // ok |
44 var uniq = flag.Bool( "u", false, "little uniq tool." ) // ok | 44 var uniq = flag.Bool( "u", false, "little uniq tool." ) // ok |
45 var uniqc = flag.Bool( "uc", false, "little uniq tool.( count )" ) // ok | 45 var uniqc = flag.Bool( "uc", false, "little uniq tool.( count )" ) // ok |
46 var uniqd = flag.Bool( "ud", false, "little uniq tool.( only dup )" ) // ok | 46 var uniqd = flag.Bool( "ud", false, "little uniq tool.( only dup )" ) // ok |
47 var uniqdc = flag.Bool( "udc", false, "little uniq tool.( count dup )" ) // ok | 47 var uniqdc = flag.Bool( "udc", false, "little uniq tool.( count dup )" ) // ok |
48 var md5 = flag.Bool( "md5", false, "md5." ) // ok | 48 var md5 = flag.Bool( "md5", false, "md5." ) // ok |
50 var grep = flag.String( "a", "", "little grep tool." ) // ok | 50 var grep = flag.String( "a", "", "little grep tool." ) // ok |
51 var grepv = flag.String( "b", "", "little grep -v tool." ) // ok | 51 var grepv = flag.String( "b", "", "little grep -v tool." ) // ok |
52 var orgrep = flag.String( "A", "", "little grep tool. ( from list file )" ) // ok | 52 var orgrep = flag.String( "A", "", "little grep tool. ( from list file )" ) // ok |
53 var orgrepv = flag.String( "B", "", "little grep -v tool. ( from list file )" ) // ok | 53 var orgrepv = flag.String( "B", "", "little grep -v tool. ( from list file )" ) // ok |
54 var tee = flag.String( "e", "", "little tee tool." ) // ok | 54 var tee = flag.String( "e", "", "little tee tool." ) // ok |
55 var nc = flag.Bool( "nc", false, "netcat." ) // ok | |
56 var ncl = flag.Bool( "ncl", false, "netcat listen-mode." ) // ok | |
57 | |
55 | 58 |
56 var msleep = flag.Bool( "M", false, "sleep." ) | 59 var msleep = flag.Bool( "M", false, "sleep." ) |
57 //var swatch = flag.Bool( "W", false, "stop watch." ) | 60 //var swatch = flag.Bool( "W", false, "stop watch." ) |
58 //var bccalc = flag.Bool( "j", false, "calculator." ) | 61 //var bccalc = flag.Bool( "j", false, "calculator." ) |
59 //var bhole = flag.Bool( "k", false, "black hole. ( /dev/null )" ) | 62 //var bhole = flag.Bool( "k", false, "black hole. ( /dev/null )" ) |
91 // IP, mask, gw, dns | 94 // IP, mask, gw, dns |
92 host, _ := os.Hostname() | 95 host, _ := os.Hostname() |
93 fmt.Fprintf( os.Stderr, "OS = %s\n", runtime.GOOS ) | 96 fmt.Fprintf( os.Stderr, "OS = %s\n", runtime.GOOS ) |
94 fmt.Fprintf( os.Stderr, "ARCH = %s\n", runtime.GOARCH ) | 97 fmt.Fprintf( os.Stderr, "ARCH = %s\n", runtime.GOARCH ) |
95 fmt.Fprintf( os.Stderr, "HOSTNAME = %s", host ) | 98 fmt.Fprintf( os.Stderr, "HOSTNAME = %s", host ) |
96 addrs, err := net.InterfaceAddrs() | 99 fmt.Fprintf( os.Stderr, " [%s]\n", nw.GetLocalIP() ) |
97 if err != nil { | |
98 log.Fatal( err ) | |
99 } | |
100 ip := "127.0.0.1" | |
101 for _, addr := range addrs { | |
102 if ipnet, ok := addr.(*net.IPNet); ok && !ipnet.IP.IsLoopback() { | |
103 if ipnet.IP.To4() != nil { | |
104 ip = ipnet.IP.String() | |
105 } | |
106 } | |
107 } | |
108 fmt.Fprintf( os.Stderr, " [%s]\n", ip ) | |
109 os.Exit( 0 ) | 100 os.Exit( 0 ) |
110 } | 101 } |
111 | 102 |
112 /* Here Utility Function ( unix tool like tools ) */ | 103 /* Here Utility Function ( unix tool like tools ) */ |
113 if *msleep { | 104 if *msleep { |
273 if *sha256 { // done. | 264 if *sha256 { // done. |
274 if err := is_exist_files( flag.Args() ); err != nil { | 265 if err := is_exist_files( flag.Args() ); err != nil { |
275 log.Fatal( err ) | 266 log.Fatal( err ) |
276 } | 267 } |
277 lu.Sha256( flag.Args() ) | 268 lu.Sha256( flag.Args() ) |
269 os.Exit( 0 ) | |
270 } | |
271 | |
272 if *nc { // done. | |
273 if flag.NArg() != 2 { | |
274 fmt.Fprintf( os.Stderr, "$ ut -nc 192.168.0.55 8080\n" ) | |
275 os.Exit( 1 ) | |
276 } | |
277 nw.Netcat( flag.Args()[0], flag.Args()[1] ) | |
278 os.Exit( 0 ) | |
279 } | |
280 | |
281 if *ncl { // done. | |
282 if flag.NArg() == 0 { | |
283 fmt.Fprintf( os.Stderr, "$ ut -ncl 8080\n" ) | |
284 os.Exit( 1 ) | |
285 } | |
286 nw.Netcat_l( flag.Args()[0] ) | |
278 os.Exit( 0 ) | 287 os.Exit( 0 ) |
279 } | 288 } |
280 | 289 |
281 if *ipscan { | 290 if *ipscan { |
282 fmt.Fprintln( os.Stderr, "not implement" ) | 291 fmt.Fprintln( os.Stderr, "not implement" ) |