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" )