From 9af4b13a34ffaaa90511cf2d83d0374b10ab28a8 Mon Sep 17 00:00:00 2001 From: Corben Leo Date: Tue, 9 Apr 2019 12:22:29 -0500 Subject: [PATCH 1/2] Update main.go Add option to include other status codes besides 200 via -s flag. Also move input file to flag -w --- anti-burl/main.go | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/anti-burl/main.go b/anti-burl/main.go index 482c39f..5b8be81 100644 --- a/anti-burl/main.go +++ b/anti-burl/main.go @@ -10,6 +10,8 @@ import ( "net/http" "net/url" "os" + "strconv" + "strings" "sync" "time" ) @@ -18,15 +20,22 @@ var deadHosts = make(map[string]struct{}) var deadMutex = &sync.Mutex{} var aliveHosts = make(map[string]struct{}) var aliveMutex = &sync.Mutex{} +var statusCodes = flag.String("s", "200", "Status Codes to accept separated by a comma") +var inputFile = flag.String("w", "", "File containing URLS") +var codes []string func main() { flag.Parse() - + if strings.Compare(*statusCodes, "200") != 0 { + codes = strings.Split(*statusCodes, ",") + } else { + codes = append(codes, "200") + } var input io.Reader input = os.Stdin - if flag.NArg() > 0 { - file, err := os.Open(flag.Arg(0)) + if strings.Compare(*inputFile, "") != 0 { + file, err := os.Open(*inputFile) if err != nil { fmt.Printf("failed to open file: %s\n", err) os.Exit(1) @@ -59,7 +68,7 @@ func main() { continue } - if resp.StatusCode == http.StatusOK { + if contains(codes, resp.StatusCode) { fmt.Printf("%s\n", u) } } @@ -78,7 +87,15 @@ func main() { wg.Wait() } - +func contains(status []string, code int) bool { + for _, stat := range status { + stat, _ := strconv.Atoi(stat) + if stat == code { + return true + } + } + return false +} func resolves(u *url.URL) bool { aliveMutex.Lock() if _, ok := aliveHosts[u.Hostname()]; ok { From 39d446a72c72d85b7945d319ed48de657b73dca5 Mon Sep 17 00:00:00 2001 From: Corben Leo Date: Tue, 9 Apr 2019 12:32:13 -0500 Subject: [PATCH 2/2] Update main.go Added flag `-c` for custom concurrency --- anti-burl/main.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/anti-burl/main.go b/anti-burl/main.go index 5b8be81..3d67402 100644 --- a/anti-burl/main.go +++ b/anti-burl/main.go @@ -22,6 +22,7 @@ var aliveHosts = make(map[string]struct{}) var aliveMutex = &sync.Mutex{} var statusCodes = flag.String("s", "200", "Status Codes to accept separated by a comma") var inputFile = flag.String("w", "", "File containing URLS") +var conc = flag.Int("c", 12, "Concurrency: default 12") var codes []string func main() { @@ -46,7 +47,7 @@ func main() { sc := bufio.NewScanner(input) urls := make(chan string, 128) - concurrency := 12 + concurrency := *conc var wg sync.WaitGroup wg.Add(concurrency)