Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- func Check(line string) {
- req, err := http.NewRequest("GET", "https://"+line , nil)
- if err != nil {
- return
- }
- req.Close = true
- resp, err := client.Do(req)
- if err != nil {
- fmt.Println(err)
- return
- }
- defer resp.Body.Close()
- if resp.StatusCode == http.StatusOK {
- bodyBytes, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- return
- }
- if strings.Contains(string(bodyBytes), "word") {
- good++
- fmt.Printf("Scanned: %d, Good: %d\n", targetsComplete, good)
- }
- }
- }
- func CheckingThread(ch chan string) {
- wg.Add(1)
- defer func() { wg.Done() }()
- for {
- if targetsComplete == targetsTotal {
- return
- }
- line := <-ch
- targetsComplete++
- Check(line)
- }
- }
- func main() {
- t0 := time.Now()
- targets := config.Targets()
- targetsTotal = len(targets)
- fmt.Println("Total targets: ", targetsTotal)
- ch := make(chan string, len(targets))
- for _, target := range targets {
- ch <- target
- }
- client = &http.Client{
- Timeout: 5 * time.Second,
- Transport: &http.Transport{
- TLSClientConfig: &tls.Config{
- InsecureSkipVerify: true,
- },
- },
- }
- for i := 0; i < cfg.Threads; i++ {
- go CheckingThread(ch)
- }
- wg.Wait()
- fmt.Println("Good: ", good)
- t1 := time.Now()
- fmt.Printf("Elapsed time: %v", t1.Sub(t0))
- }
Add Comment
Please, Sign In to add comment