modulepackage
0.0.0-20250215210818-89d3daaa135d
Repository: https://github.com/root4loot/goresolve.git
Documentation: pkg.go.dev
# README
goresolve
Quickly resolve domains using reliable resolvers (publicresolvers)
Example
go get github.com/root4loot/goresolve@master
package main
import (
"fmt"
"strings"
"github.com/root4loot/goresolve"
)
func main() {
// Options
options := goresolve.DefaultOptions()
options.Concurrency = 5
options.Timeout = 5
options.Delay = 0
options.DelayJitter = 0
options.Resolvers = []string{"208.67.222.222", "208.67.220.220"}
r := goresolve.NewRunnerWithOptions(*options)
// Single domain
fmt.Println("Single:")
result := goresolve.Single("example.com")
fmt.Printf("Domain: %s\n", result.Domain)
if len(result.IPv4) > 0 {
fmt.Printf("IPv4: %s\n", strings.Join(result.IPv4, ", "))
} else {
fmt.Println("IPV4: None")
}
if len(result.IPv6) > 0 {
fmt.Printf("IPv6: %s\n", strings.Join(result.IPv6, ", "))
} else {
fmt.Println("IPv6: None")
}
fmt.Println("Resolver:", result.ResolvedBy)
// Multiple domains
fmt.Println("\nMultiple:")
results := r.Multiple([]string{"example.com", "google.com", "github.com"})
for _, result := range results {
fmt.Printf("Domain: %s\n", result.Domain)
if len(result.IPv4) > 0 {
fmt.Printf("IPv4: %s\n", strings.Join(result.IPv4, ", "))
} else {
fmt.Println("IPV4: None")
}
if len(result.IPv6) > 0 {
fmt.Printf("IPv6: %s\n", strings.Join(result.IPv6, ", "))
} else {
fmt.Println("IPv6: None")
}
fmt.Println("Resolver:", result.ResolvedBy)
}
// Multiple domains using channels
fmt.Println("\nMultipleStream")
streamResults := make(chan goresolve.Result)
go r.MultipleStream(streamResults, "example.com", "google.com", "github.com")
for result := range streamResults {
fmt.Printf("Domain: %s\n", result.Domain)
if len(result.IPv4) > 0 {
fmt.Printf("IPv4: %s\n", strings.Join(result.IPv4, ", "))
} else {
fmt.Println("IPv4: None")
}
if len(result.IPv6) > 0 {
fmt.Printf("IPv6: %s\n", strings.Join(result.IPv6, ", "))
} else {
fmt.Println("IPv6: None")
}
fmt.Println("Resolver:", result.ResolvedBy)
}
}
Contributing
Contributions are welcome. If you find any bugs or have suggestions for improvements, feel free to open an issue or submit a pull request.
# Packages
No description provided by the author
# Functions
DefaultOptions returns default options.
NewRunner returns a new runner.
NewRunnerWithOptions returns a new runner with the specified options.
Single resolves a single domain and returns the result.