MCPcopy
hub / github.com/projectdiscovery/subfinder / Run

Method Run

pkg/subscraping/sources/windvane/windvane.go:45–128  ·  view source on GitHub ↗
(ctx context.Context, domain string, session *subscraping.Session)

Source from the content-addressed store, hash-verified

43}
44
45func (s *Source) Run(ctx context.Context, domain string, session *subscraping.Session) <-chan subscraping.Result {
46 results := make(chan subscraping.Result)
47 s.errors = 0
48 s.results = 0
49 s.requests = 0
50
51 go func() {
52 defer func(startTime time.Time) {
53 s.timeTaken = time.Since(startTime)
54 close(results)
55 }(time.Now())
56
57 randomApiKey := subscraping.PickRandom(s.apiKeys, s.Name())
58 if randomApiKey == "" {
59 s.skipped = true
60 return
61 }
62
63 headers := map[string]string{"Content-Type": "application/json", "X-Api-Key": randomApiKey}
64
65 page := 1
66 count := 1000
67 for {
68 select {
69 case <-ctx.Done():
70 return
71 default:
72 }
73 var resp *http.Response
74 var err error
75
76 requestBody, _ := json.Marshal(map[string]interface{}{"domain": domain, "page_request": map[string]int{"page": page, "count": count}})
77 s.requests++
78 resp, err = session.Post(ctx, "https://windvane.lichoin.com/trpc.backendhub.public.WindvaneService/ListSubDomain",
79 "", headers, bytes.NewReader(requestBody))
80
81 if err != nil {
82 results <- subscraping.Result{Source: s.Name(), Type: subscraping.Error, Error: err}
83 s.errors++
84 session.DiscardHTTPResponse(resp)
85 return
86 }
87
88 defer session.DiscardHTTPResponse(resp)
89
90 var windvaneResponse response
91 err = json.NewDecoder(resp.Body).Decode(&windvaneResponse)
92 if err != nil {
93 results <- subscraping.Result{Source: s.Name(), Type: subscraping.Error, Error: err}
94 s.errors++
95 session.DiscardHTTPResponse(resp)
96 return
97 }
98
99 for _, record := range windvaneResponse.Data.List {
100 select {
101 case <-ctx.Done():
102 return

Callers

nothing calls this directly

Implementers 15

Sourcepkg/subscraping/sources/submd/submd.go
Sourcepkg/subscraping/sources/waybackarchive
Sourcepkg/subscraping/sources/bevigil/bevigi
Sourcepkg/subscraping/sources/hackertarget/h
Sourcepkg/subscraping/sources/chinaz/chinaz.
Sourcepkg/subscraping/sources/rapiddns/rapid
Sourcepkg/subscraping/sources/chaos/chaos.go
Sourcepkg/subscraping/sources/windvane/windv
Sourcepkg/subscraping/sources/hudsonrock/hud
Sourcepkg/subscraping/sources/threatbook/thr
Sourcepkg/subscraping/sources/dnsdumpster/dn
Sourcepkg/subscraping/sources/threatcrowd/th

Calls 4

NameMethod · 0.95
PickRandomFunction · 0.92
PostMethod · 0.80
DiscardHTTPResponseMethod · 0.80

Tested by

no test coverage detected