diff --git a/README.md b/README.md index f5c87a6..f350ab2 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ Usage: Flags: -w, --wordlist string Path to wordlist -r, --resolvers string Path to resolvers - -o, --output string Path to save output + -o, --output string Path to save output (csv, txt, json) -u, --udp Query using UDP -i, --ipv6 Query for IPv6 -d, --wildcard Query for wildcard diff --git a/v1/cmd/blink/main.go b/v1/cmd/blink/main.go index b452eed..d2385b8 100644 --- a/v1/cmd/blink/main.go +++ b/v1/cmd/blink/main.go @@ -200,7 +200,8 @@ 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(). + StringVarP(&output, "output", "o", "", fmt.Sprintf("Path to save output (%s)", strings.Join(file.Extensions, ", "))) 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") diff --git a/v1/internal/file/write.go b/v1/internal/file/write.go index 0ee736f..98369fc 100644 --- a/v1/internal/file/write.go +++ b/v1/internal/file/write.go @@ -8,7 +8,7 @@ import ( ) // Supported extensions -var extensions = [2]string{"txt", "json"} +var Extensions = []string{"csv", "txt", "json"} // Write to file func Write(path, domain, subdomain string, ips []string) error { @@ -34,6 +34,19 @@ func Write(path, domain, subdomain string, ips []string) error { // Check extension switch extension { + case "csv": + // Store IPs + ip := strings.Join(ips, "#") + + // Format line + line := fmt.Sprintf("%s,%s,%s\n", domain, subdomain, ip) + + // Write line + _, err := file.Write([]byte(line)) + if err != nil { + return err + } + case "txt": // Store IPs ip := strings.Join(ips, ",")