Class DatabaseReader
- All Implemented Interfaces:
Closeable
,AutoCloseable
The class DatabaseReader
provides a reader for the GeoIP2 database
format.
Usage
To use the database API, you must create a new DatabaseReader
using
the DatabaseReader.Builder
. You must provide the Builder
constructor either an InputStream
or File
for your GeoIP2
database. You may also specify the fileMode
and the locales
fallback order using the methods on the Builder
object. After you
have created the DatabaseReader
, you may then call the appropriate
method (e.g., city
) for your database, passing it the IP address
you want to look up.
If the lookup succeeds, the method call will return a response class for the GeoIP2 lookup. The class in turn contains multiple record classes, each of which represents part of the data returned by the database.
We recommend reusing the DatabaseReader
object rather than creating
a new one for each lookup. The creation of this object is relatively
expensive as it must read in metadata for the file. It is safe to share the
object across threads.
Caching
The database API supports pluggable caching (by default, no caching is
performed). A simple implementation is provided by
com.maxmind.db.CHMCache
. Using this cache, lookup performance is
significantly improved at the cost of a small (~2MB) memory overhead.
- Since:
- 0.9.38
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic final class
Constructs a Builder for theDatabaseReader
. -
Method Summary
-
Method Details
-
close
Closes the database.
If you are using
FileMode.MEMORY_MAPPED
, this will not unmap the underlying file due to a limitation in Java'sMappedByteBuffer
. It will however set the reference to the buffer tonull
, allowing the garbage collector to collect it.- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Throws:
IOException
- if an I/O error occurs.
-
country
- Throws:
IOException
-
countryToIP
I2P - Write all IPv4 address ranges for the given country to out.- Parameters:
country
- two-letter case-insensitiveout
- caller must close- Throws:
IOException
- Since:
- 0.9.48
-
getMetadata
- Returns:
- the metadata for the open MaxMind DB file.
-
main
- Throws:
Exception
-