mmdbformat

package
v1.0.1 Latest Latest
Warning

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

Go to latest
Published: Feb 21, 2019 License: MIT Imports: 9 Imported by: 0

Documentation

Overview

Package mmdbformat implements the version 2 MaxMind database (mmdb) format

Index

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

Jump to

Keyboard shortcuts

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