34 lines
675 B
Go
34 lines
675 B
Go
|
package dns
|
||
|
|
||
|
import (
|
||
|
"math/rand"
|
||
|
"net"
|
||
|
"time"
|
||
|
|
||
|
"github.com/miekg/dns"
|
||
|
)
|
||
|
|
||
|
// DNS query
|
||
|
type Query struct {
|
||
|
Client *dns.Client // DNS client
|
||
|
Resolvers []string // Target resolvers
|
||
|
Domain string // Target domain
|
||
|
Subdomain string // Target subdomain
|
||
|
Results chan<- *Result // Results channel
|
||
|
}
|
||
|
|
||
|
// DNS result
|
||
|
type Result struct {
|
||
|
Domain string // Target domain
|
||
|
Subdomain string // Target subdomain
|
||
|
Wildcard bool // Wildcard detect
|
||
|
IPv4 []net.IP // IPv4 hosts
|
||
|
IPv6 []net.IP // IPv6 hosts
|
||
|
Error error // Error response
|
||
|
}
|
||
|
|
||
|
func init() {
|
||
|
// Random seed
|
||
|
rand.New(rand.NewSource(time.Now().UnixNano()))
|
||
|
}
|