Documentation ¶
Overview ¶
Package mmdbformat implements the version 2 MaxMind database (mmdb) format
Index ¶
- Variables
- func BuildRecordTree(reader *maxminddb.Reader, ipVersion geodbtools.IPVersion, ...) (tree *geodbtools.RecordTree, err error)
- func LookupType(dbType geodbtools.DatabaseType) (t Type, typeID DatabaseTypeID, err error)
- func MustRegisterType(typeID DatabaseTypeID, t Type)
- func RegisterType(typeID DatabaseTypeID, t Type) (err error)
- type DatabaseTypeID
- type Record
- type RecordFactory
- type Type
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // ErrTypeRegistered indicates that the database type has already been registered ErrTypeRegistered = errors.New("database type is registered") // ErrTypeNotFound indicates that the database type has not been found ErrTypeNotFound = errors.New("database type not found") )
Functions ¶
func BuildRecordTree ¶
func BuildRecordTree(reader *maxminddb.Reader, ipVersion geodbtools.IPVersion, factory RecordFactory) (tree *geodbtools.RecordTree, err error)
BuildRecordTree builds a record tree
func LookupType ¶
func LookupType(dbType geodbtools.DatabaseType) (t Type, typeID DatabaseTypeID, err error)
LookupType retrieves the type for a given geodbtools.DatabaseType string
func MustRegisterType ¶
func MustRegisterType(typeID DatabaseTypeID, t Type)
MustRegisterType registers a database type and panics on error
func RegisterType ¶
func RegisterType(typeID DatabaseTypeID, t Type) (err error)
RegisterType registers a database type
Types ¶
type DatabaseTypeID ¶
type DatabaseTypeID string
DatabaseTypeID represents a MMDB database type ID
const ( // DatabaseTypeIDGeoLite2Country defines the database type of GeoLite2-Country databases DatabaseTypeIDGeoLite2Country DatabaseTypeID = "GeoLite2-Country" // DatabaseTypeIDGeoIP2Country defines the database type of GeoIP2-Country databases DatabaseTypeIDGeoIP2Country DatabaseTypeID = "GeoIP2-Country" // DatabaseTypeIDGeoLite2City defines the database type of GeoLite2-City databases DatabaseTypeIDGeoLite2City DatabaseTypeID = "GeoLite2-City" // DatabaseTypeIDGeoIP2City defines the database type of GeoIP2-City databases DatabaseTypeIDGeoIP2City DatabaseTypeID = "GeoIP2-City" )
type Record ¶
type Record interface { geodbtools.Record // SetNetwork sets the network of the record SetNetwork(network *net.IPNet) }
Record defines the interface used by generic tree handling
type RecordFactory ¶
type RecordFactory func() Record
RecordFactory defines the function type that returns a new record
type Type ¶
type Type interface { // DatabaseType returns the database type DatabaseType() geodbtools.DatabaseType // NewReader returns a new database reader NewReader(dbReader *maxminddb.Reader) (reader geodbtools.Reader, err error) // NewWriter returns a new database writer NewWriter(w io.Writer, ipVersion geodbtools.IPVersion) (writer geodbtools.Writer, err error) }
Type describes a database type
func LookupTypeByDatabaseType ¶
func LookupTypeByDatabaseType(typeID DatabaseTypeID) (t Type, err error)
LookupTypeByDatabaseType retrieves the type for a given DatabaseTypeID constant
Click to show internal directories.
Click to hide internal directories.