dnsrecon

package
v0.0.0-...-0d8db16 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 22, 2019 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ErrNoData = "NODATA"
)

Variables

This section is empty.

Functions

func NewCache

func NewCache() *lru.Cache

Types

type DnsClient

type DnsClient struct {
	Resolver       *resolvers.Resolver
	RetryResolvers *resolvers.RetryResolver

	TargetLookupCh chan TargetLookup
	ClientId       int
	Cache          *LruCache
	Log            *log.Logger
	Ratelimit      int
	Nameserver     string
	Nameservers    struct {
		Ips []string
		// contains filtered or unexported fields
	}
	// contains filtered or unexported fields
}

func NewDnsClient

func NewDnsClient() *DnsClient

func (*DnsClient) DnsResolver

func (client *DnsClient) DnsResolver(m *dns.Msg) (*dns.Msg, error)

func (*DnsClient) GetDnsData

func (client *DnsClient) GetDnsData(targetDomain string) *DomainData

func (*DnsClient) GetNameserver

func (client *DnsClient) GetNameserver() string

func (*DnsClient) GetRetryDnsServer

func (client *DnsClient) GetRetryDnsServer() string

func (*DnsClient) RatelimitRequests

func (client *DnsClient) RatelimitRequests()

func (*DnsClient) Start

func (client *DnsClient) Start()

type DomainData

type DomainData struct {
	Name string `json:"name"`

	Data struct {
		SOA        soaData                  `json:"soa"`
		NS         map[string]IpSet         `json:"ns"`
		MX         map[int]map[string]IpSet `json:"mx"`
		TXT        []string                 `json:"txt"`
		CName      []string                 `json:"cname"`
		A          []string                 `json:"a"`
		AAAA       []string                 `json:"aaaa"`
		CNamePaths map[string][][]string    `json:"cname_paths"`
	} `json:"data"`

	Timestamp time.Time `json:"timestamp"`

	Status string `json:"status"`

	Errors map[string]string `json:"errors"`
}

DomainData stored the full set of dns records for the domain

func NewDomainData

func NewDomainData() *DomainData

func (*DomainData) Validate

func (dns *DomainData) Validate() bool

type IpSet

type IpSet struct {
	A    []string `json:"a"`
	AAAA []string `json:"aaaa"`
}

type LruCache

type LruCache struct {
	Lru *lru.Cache
	Mu  sync.RWMutex
}

func NewLruCache

func NewLruCache() *LruCache

type MXData

type MXData struct {
	MX map[int]map[string]IpSet
}

type NSData

type NSData struct {
	NS map[string]IpSet `json:"ns"`
}

type TargetLookup

type TargetLookup struct {
	Domain       string
	DomainDataCh chan DomainData
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL