projectdiscovery / httpx

httpx is a fast and multi-purpose HTTP toolkit that allows running multiple probes using the retryablehttp library.
https://docs.projectdiscovery.io/tools/httpx
MIT License
7.53k stars 822 forks source link

add disable stdout option #1871

Closed dogancanbakir closed 1 month ago

dogancanbakir commented 1 month ago

Closes #1692

package main

import (
    "fmt"
    "log"

    "github.com/projectdiscovery/goflags"
    "github.com/projectdiscovery/httpx/runner"
)

func main() {
    results := map[string]struct{}{}

    options := runner.Options{
        Methods:         "GET",
        Timeout:         5,
        Threads:         80,
        Silent:          true,
        RandomAgent:     true,
        Retries:         2,
        DisableStdout:   true,
        InputTargetHost: goflags.StringSlice{"scanme.sh", "projectdiscovery.io", "localhost", "x"},
        OnResult: func(r runner.Result) {
            if r.Err != nil {
                return
            }
            results[r.URL] = struct{}{}
        },
    }

    if err := options.ValidateOptions(); err != nil {
        log.Fatal(err)
    }

    httpxRunner, err := runner.New(&options)
    if err != nil {
        log.Fatal(err)
    }
    defer httpxRunner.Close()

    httpxRunner.RunEnumeration()
    fmt.Println("Results:", results)
}
$ go run .
Results: map[https://projectdiscovery.io:{} https://scanme.sh:{}]