Added output flag

This commit is contained in:
perp 2024-07-09 18:55:31 +01:00
parent 3c819bd083
commit 77f1046bfc

View File

@ -6,6 +6,7 @@ import (
"slices"
"strconv"
"strings"
"sync"
"git.supernets.org/perp/blink/v1/internal/bar"
"git.supernets.org/perp/blink/v1/internal/file"
@ -31,8 +32,11 @@ var opts runner.Options
var (
wordlist string
resolvers string
output string
wildcard bool
verbose bool
mu sync.Mutex
)
// Command
@ -99,7 +103,7 @@ var rootCmd = &cobra.Command{
pb.Add(1)
pb.Clear()
// Error found
// Check error
if result.Error != nil {
// Verbose enabled
if verbose {
@ -125,6 +129,31 @@ var rootCmd = &cobra.Command{
log.Info().
Str("hosts", ips).
Msg(result.Subdomain)
// Output found
if output != "" {
// Lock mutex
mu.Lock()
// Write output
var err error
// Check IPv6
switch opts.IPv6 {
case false:
err = file.Write(output, result.Domain, result.Subdomain, result.IPv4)
case true:
err = file.Write(output, result.Domain, result.Subdomain, result.IPv6)
}
// Unlock mutex
mu.Unlock()
// Check error
if err != nil {
return
}
}
}
// Create runner
@ -171,6 +200,7 @@ func init() {
// Add flags
rootCmd.Flags().StringVarP(&wordlist, "wordlist", "w", "", "Path to wordlist")
rootCmd.Flags().StringVarP(&resolvers, "resolvers", "r", "", "Path to resolvers")
rootCmd.Flags().StringVarP(&output, "output", "o", "", "Path to save output")
rootCmd.Flags().BoolVarP(&opts.UDP, "udp", "u", false, "Query using UDP")
rootCmd.Flags().BoolVarP(&opts.IPv6, "ipv6", "i", false, "Query for IPv6")
rootCmd.Flags().BoolVarP(&wildcard, "wildcard", "d", false, "Query for wildcard")