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.