Documentation
¶
Overview ¶
Package geolocate implements IP lookup, resolver lookup, and geolocation.
Index ¶
Constants ¶
View Source
const ( // DefaultProbeASN is the default probe ASN as number. DefaultProbeASN uint = 0 // DefaultProbeCC is the default probe CC. DefaultProbeCC = "ZZ" // DefaultProbeIP is the default probe IP. DefaultProbeIP = model.DefaultProbeIP // DefaultProbeNetworkName is the default probe network name. DefaultProbeNetworkName = "" // DefaultResolverASN is the default resolver ASN. DefaultResolverASN uint = 0 // DefaultResolverIP is the default resolver IP. DefaultResolverIP = "127.0.0.2" // DefaultResolverNetworkName is the default resolver network name. DefaultResolverNetworkName = "" )
Variables ¶
View Source
var ( // DefaultProbeASNString is the default probe ASN as a string. DefaultProbeASNString = fmt.Sprintf("AS%d", DefaultProbeASN) // DefaultResolverASNString is the default resolver ASN as a string. DefaultResolverASNString = fmt.Sprintf("AS%d", DefaultResolverASN) )
View Source
var ( // ErrAllIPLookuppersFailed indicates that we failed with looking // up the probe IP for with all the lookuppers that we tried. ErrAllIPLookuppersFailed = errors.New("all IP lookuppers failed") // ErrInvalidIPAddress indicates that the code returned to us a // string that actually isn't a valid IP address. ErrInvalidIPAddress = errors.New("lookupper did not return a valid IP") )
View Source
var ( // ErrMissingResourcesManager indicates that no resources // manager has been configured inside of Config. ErrMissingResourcesManager = errors.New("geolocate: ResourcesManager is nil") )
View Source
var ( // ErrNoIPAddressReturned indicates that no IP address was // returned by a specific DNS resolver. ErrNoIPAddressReturned = errors.New("geolocate: no IP address returned") )
Functions ¶
Types ¶
type Config ¶
type Config struct {
// EnableResolverLookup indicates whether we want to
// perform the optional resolver lookup.
EnableResolverLookup bool
// HTTPClient is the HTTP client to use. If not set, then
// we will use the http.DefaultClient.
HTTPClient *http.Client
// Logger is the logger to use. If not set, then we will
// use a logger that discards all messages.
Logger Logger
// ResourcesManager is the mandatory resources manager. If not
// set, we will not be able to perform any lookup.
ResourcesManager ResourcesManager
// UserAgent is the user agent to use. If not set, then
// we will use a default user agent.
UserAgent string
}
Config contains configuration for a geolocate Task.
type Logger ¶
type Logger interface {
Debugf(format string, v ...interface{})
}
Logger is the definition of Logger used by this package.
type ResourcesManager ¶
type ResourcesManager interface {
// ASNDatabasePath returns the path of the ASN database.
ASNDatabasePath() string
// CountryDatabasePath returns the path of the country database.
CountryDatabasePath() string
// MaybeUpdateResources ensures that the required resources
// have been downloaded and are current.
MaybeUpdateResources(ctx context.Context) error
}
ResourcesManager manages the required resources.
type Results ¶
type Results struct {
// ASN is the autonomous system number
ASN uint
// CountryCode is the country code
CountryCode string
// DidResolverLookup indicates whether we did a resolver lookup.
DidResolverLookup bool
// NetworkName is the network name
NetworkName string
// IP is the probe IP
ProbeIP string
// ResolverASN is the resolver ASN
ResolverASN uint
// ResolverIP is the resolver IP
ResolverIP string
// ResolverNetworkName is the resolver network name
ResolverNetworkName string
}
Results contains geolocate results
Click to show internal directories.
Click to hide internal directories.