Skip to content

Commit

Permalink
update: 允许参数后置
Browse files Browse the repository at this point in the history
  • Loading branch information
zhshch2002 committed May 27, 2022
1 parent dbc0f87 commit cfc8034
Showing 1 changed file with 35 additions and 18 deletions.
53 changes: 35 additions & 18 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import (
"fmt"
"log"
"os"
"strings"
"time"

"github.com/xgadget-lab/nexttrace/ipgeo"
Expand All @@ -14,31 +15,47 @@ import (
"github.com/xgadget-lab/nexttrace/util"
)

var tcpSYNFlag = flag.Bool("T", false, "Use TCP SYN for tracerouting (default port is 80)")
var udpPackageFlag = flag.Bool("U", false, "Use UDP Package for tracerouting (default port is 53 in UDP)")
var port = flag.Int("p", 80, "Set SYN Traceroute Port")
var numMeasurements = flag.Int("q", 3, "Set the number of probes per each hop.")
var parallelRequests = flag.Int("r", 18, "Set ParallelRequests number. It should be 1 when there is a multi-routing.")
var maxHops = flag.Int("m", 30, "Set the max number of hops (max TTL to be reached).")
var dataOrigin = flag.String("d", "LeoMoeAPI", "Choose IP Geograph Data Provider [LeoMoeAPI, IP.SB, IPInfo, IPInsight]")
var rdnsenable = flag.Bool("rdns", false, "Set whether rDNS will be display")
var routePath = flag.Bool("report", false, "Route Path")
var realtimePrint = flag.Bool("realtime", false, "Output trace results in runtime")
var tablePrint = flag.Bool("table", false, "Output trace results as table")
var ver = flag.Bool("V", false, "Check Version")
var fSet = flag.NewFlagSet("", flag.ExitOnError)
var tcpSYNFlag = fSet.Bool("T", false, "Use TCP SYN for tracerouting (default port is 80)")
var udpPackageFlag = fSet.Bool("U", false, "Use UDP Package for tracerouting (default port is 53 in UDP)")
var port = fSet.Int("p", -1, "Set SYN Traceroute Port")
var numMeasurements = fSet.Int("q", 3, "Set the number of probes per each hop.")
var parallelRequests = fSet.Int("r", 18, "Set ParallelRequests number. It should be 1 when there is a multi-routing.")
var maxHops = fSet.Int("m", 30, "Set the max number of hops (max TTL to be reached).")
var dataOrigin = fSet.String("d", "LeoMoeAPI", "Choose IP Geograph Data Provider [LeoMoeAPI, IP.SB, IPInfo, IPInsight]")
var rdnsenable = fSet.Bool("rdns", false, "Set whether rDNS will be display")
var routePath = fSet.Bool("report", false, "Route Path")
var realtimePrint = fSet.Bool("realtime", false, "Output trace results in runtime")
var tablePrint = fSet.Bool("table", false, "Output trace results as table")
var ver = fSet.Bool("V", false, "Check Version")

func printArgHelp() {
fmt.Println("\nArgs Error\nUsage : 'nexttrace [option...] <hostname>' or 'nexttrace <hostname> [option...]'")
fSet.PrintDefaults()
os.Exit(2)
}

func flagApply() string {
flag.Parse()
printer.Version()

target := ""
if len(os.Args) < 2 {
printArgHelp()
}
if !strings.HasPrefix(os.Args[1], "-") {
target = os.Args[1]
fSet.Parse(os.Args[2:])
} else {
fSet.Parse(os.Args[1:])
target = fSet.Arg(0)
}
if *ver {
os.Exit(0)
}
ipArg := flag.Args()
if flag.NArg() != 1 {
fmt.Println("Args Error\nUsage : nexttrace [-VTU] [-d DATAORIGIN.STR ] [ -m TTL ] [ -p PORT ] [ -q PROBES.COUNT ] [ -r PARALLELREQUESTS.COUNT ] [-rdns] [ -realtime | -table ] -report HOSTNAME")
os.Exit(2)
if target == "" {
printArgHelp()
}
return ipArg[0]
return target
}

func main() {
Expand Down

0 comments on commit cfc8034

Please sign in to comment.