123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- package main
- import (
- "log"
- "os"
- "strings"
- )
- const timeout = 5
- func main() {
- //log.SetFlags(log.Ldate | log.Lmicroseconds | log.Lshortfile)
- log.SetFlags(log.Ldate | log.Lmicroseconds)
- printWelcome()
- args := os.Args
- argc := len(os.Args)
- if argc <= 2 {
- printHelp()
- os.Exit(0)
- }
- switch args[1] {
- case "-listen":
- if argc < 3 {
- log.Fatalln(`-listen need two arguments, like "nb -listen 1997 2017".`)
- }
- port1 := checkPort(args[2])
- port2 := checkPort(args[3])
- log.Println("[√]", "start to listen port:", port1, "and port:", port2)
- port2port(port1, port2)
- break
- case "-tran":
- if argc < 3 {
- log.Fatalln(`-tran need two arguments, like "nb -tran 1997 192.168.1.2:3389".`)
- }
- port := checkPort(args[2])
- var remoteAddress string
- if checkIp(args[3]) {
- remoteAddress = args[3]
- }
- split := strings.SplitN(remoteAddress, ":", 2)
- log.Println("[√]", "start to transmit address:", remoteAddress, "to address:", split[0]+":"+port)
- port2host(port, remoteAddress)
- break
- case "-slave":
- if argc < 3 {
- log.Fatalln(`-slave need two arguments, like "nb -slave 127.0.0.1:3389 8.8.8.8:1997".`)
- }
- var address1, address2 string
- checkIp(args[2])
- if checkIp(args[2]) {
- address1 = args[2]
- }
- checkIp(args[3])
- if checkIp(args[3]) {
- address2 = args[3]
- }
- log.Println("[√]", "start to connect address:", address1, "and address:", address2)
- host2host(address1, address2)
- break
- default:
- printHelp()
- }
- }
|