Documentation ¶
Index ¶
- Variables
- func DoLookups(g *GlobalLookupFactory, c *GlobalConf) error
- func GetDNSServers(path string) ([]string, error)
- func RegisterInputHandler(name string, h InputHandler)
- func RegisterLookup(name string, s GlobalLookupFactory)
- func RegisterOutputHandler(name string, h OutputHandler)
- func ValidlookupsString() string
- type BaseGlobalLookupFactory
- func (s *BaseGlobalLookupFactory) AddFlags(f *flag.FlagSet)
- func (s *BaseGlobalLookupFactory) AllowStdIn() bool
- func (f *BaseGlobalLookupFactory) Finalize() error
- func (s *BaseGlobalLookupFactory) Help() string
- func (f *BaseGlobalLookupFactory) Initialize(c *GlobalConf) error
- func (f *BaseGlobalLookupFactory) RandomNameServer() string
- func (s *BaseGlobalLookupFactory) ZonefileInput() bool
- type BaseLookup
- type GlobalConf
- type GlobalLookupFactory
- type InputHandler
- type Lookup
- type Metadata
- type OutputHandler
- type Result
- type RoutineLookupFactory
- type Status
- type TargetedDomain
Constants ¶
This section is empty.
Variables ¶
View Source
var RootServers = [...]string{
"198.41.0.4:53",
"192.228.79.201:53",
"192.33.4.12:53",
"199.7.91.13:53",
"192.203.230.10:53",
"192.5.5.241:53",
"192.112.36.4:53",
"198.97.190.53:53",
"192.36.148.17:53",
"192.58.128.30:53",
"193.0.14.129:53",
"199.7.83.42:53",
"202.12.27.33:53"}
Functions ¶
func DoLookups ¶
func DoLookups(g *GlobalLookupFactory, c *GlobalConf) error
func GetDNSServers ¶
func RegisterInputHandler ¶
func RegisterInputHandler(name string, h InputHandler)
func RegisterLookup ¶
func RegisterLookup(name string, s GlobalLookupFactory)
func RegisterOutputHandler ¶
func RegisterOutputHandler(name string, h OutputHandler)
func ValidlookupsString ¶
func ValidlookupsString() string
Types ¶
type BaseGlobalLookupFactory ¶
type BaseGlobalLookupFactory struct {
GlobalConf *GlobalConf
}
func (*BaseGlobalLookupFactory) AddFlags ¶
func (s *BaseGlobalLookupFactory) AddFlags(f *flag.FlagSet)
func (*BaseGlobalLookupFactory) AllowStdIn ¶
func (s *BaseGlobalLookupFactory) AllowStdIn() bool
func (*BaseGlobalLookupFactory) Finalize ¶
func (f *BaseGlobalLookupFactory) Finalize() error
func (*BaseGlobalLookupFactory) Help ¶
func (s *BaseGlobalLookupFactory) Help() string
func (*BaseGlobalLookupFactory) Initialize ¶
func (f *BaseGlobalLookupFactory) Initialize(c *GlobalConf) error
func (*BaseGlobalLookupFactory) RandomNameServer ¶
func (f *BaseGlobalLookupFactory) RandomNameServer() string
func (*BaseGlobalLookupFactory) ZonefileInput ¶
func (s *BaseGlobalLookupFactory) ZonefileInput() bool
type BaseLookup ¶
type BaseLookup struct { }
func (*BaseLookup) DoLookup ¶
func (base *BaseLookup) DoLookup(name string, class uint16) (interface{}, Status, error)
func (*BaseLookup) DoZonefileLookup ¶
func (base *BaseLookup) DoZonefileLookup(record *dns.Token) (interface{}, Status, error)
type GlobalConf ¶
type GlobalConf struct { Threads int Timeout time.Duration IterationTimeout time.Duration Retries int AlexaFormat bool IterativeResolution bool ResultVerbosity string IncludeInOutput string OutputGroups []string MaxDepth int CacheSize int GoMaxProcs int Verbosity int TimeFormat string PassedName string NameServersSpecified bool NameServers []string TCPOnly bool UDPOnly bool InputHandler string OutputHandler string InputFilePath string OutputFilePath string LogFilePath string MetadataFilePath string NamePrefix string Module string Class uint16 }
type GlobalLookupFactory ¶
type GlobalLookupFactory interface { // expected to add any necessary commandline flags if being // run as a standalone scanner AddFlags(flags *flag.FlagSet) // global initialization. Gets called once globally // This is called after command line flags have been parsed Initialize(conf *GlobalConf) error Finalize() error // We can't set variables on an interface, so write functions // that define any settings for the factory AllowStdIn() bool // Some modules have Zonefile inputs ZonefileInput() bool // Help text for the CLI Help() string // Return a single scanner which will scan a single host MakeRoutineFactory(int) (RoutineLookupFactory, error) RandomNameServer() string }
one RoutineLookupFactory per execution =====================================
func GetLookup ¶
func GetLookup(name string) GlobalLookupFactory
type InputHandler ¶
type InputHandler interface { // give the InputHandler access to the global config in case it needs any of the settings Initialize(conf *GlobalConf) // FeedChannel takes a channel to write domains to, the WaitGroup managing them, and if it's a zonefile input FeedChannel(in chan<- interface{}, wg *sync.WaitGroup, zonefileInput bool) error }
handle domain input
func GetInputHandler ¶
func GetInputHandler(name string) InputHandler
type Lookup ¶
type Lookup interface { DoLookup(name string) (interface{}, []interface{}, Status, error) DoZonefileLookup(record *dns.Token) (interface{}, Status, error) }
one Lookup per IP/name/connection ==========================================
type OutputHandler ¶
type OutputHandler interface { // give the OutputHandler access to the global config in case it needs any of the settings Initialize(conf *GlobalConf) // takes a channel (results) to write the query results to, and the WaitGroup managing the handlers WriteResults(results <-chan string, wg *sync.WaitGroup) error }
handle output results
func GetOutputHandler ¶
func GetOutputHandler(name string) OutputHandler
type Result ¶
type Result struct { AlteredName string `json:"altered_name,omitempty" groups:"short,normal,long,trace"` Name string `json:"name,omitempty" groups:"short,normal,long,trace"` Nameserver string `json:"nameserver,omitempty" groups:"normal,long,trace"` Class string `json:"class,omitempty" groups:"long,trace"` AlexaRank int `json:"alexa_rank,omitempty" groups:"short,normal,long,trace"` Status string `json:"status,omitempty" groups:"short,normal,long,trace"` Error string `json:"error,omitempty" groups:"short,normal,long,trace"` Timestamp string `json:"timestamp,omitempty" groups:"short,normal,long,trace"` Data interface{} `json:"data,omitempty" groups:"short,normal,long,trace"` Trace []interface{} `json:"trace,omitempty" groups:"trace"` }
type RoutineLookupFactory ¶
one RoutineLookupFactory per goroutine =====================================
type Status ¶
type Status string
const ( STATUS_NOERROR Status = "NOERROR" STATUS_ERROR Status = "ERROR" STATUS_SERVFAIL Status = "SERVFAIL" STATUS_AUTHFAIL Status = "AUTHFAIL" STATUS_NO_RECORD Status = "NORECORD" STATUS_BLACKLIST Status = "BLACKLIST" STATUS_NO_OUTPUT Status = "NO_OUTPUT" STATUS_NO_ANSWER Status = "NO_ANSWER" STATUS_ILLEGAL_INPUT Status = "ILLEGAL_INPUT" STATUS_TIMEOUT Status = "TIMEOUT" STATUS_ITER_TIMEOUT Status = "ITERATIVE_TIMEOUT" STATUS_TEMPORARY Status = "TEMPORARY" STATUS_TRUNCATED Status = "TRUNCATED" STATUS_NXDOMAIN Status = "NXDOMAIN" STATUS_REFUSED Status = "REFUSED" )
type TargetedDomain ¶
Click to show internal directories.
Click to hide internal directories.