Class Reader

  • All Implemented Interfaces:
    Closeable, AutoCloseable

    public final class Reader
    extends Object
    implements Closeable
    Instances of this class provide a reader for the MaxMind DB format. IP addresses can be looked up using the get method.
    • Constructor Detail

      • Reader

        public Reader​(File database)
               throws IOException
        Constructs a Reader for the MaxMind DB format, with no caching. The file passed to it must be a valid MaxMind DB file such as a GeoIP2 database file.
        Parameters:
        database - the MaxMind DB file to use.
        Throws:
        IOException - if there is an error opening or reading from the file.
      • Reader

        public Reader​(File database,
                      NodeCache cache)
               throws IOException
        Constructs a Reader for the MaxMind DB format, with the specified backing cache. The file passed to it must be a valid MaxMind DB file such as a GeoIP2 database file.
        Parameters:
        database - the MaxMind DB file to use.
        cache - backing cache instance
        Throws:
        IOException - if there is an error opening or reading from the file.
      • Reader

        public Reader​(InputStream source)
               throws IOException
        Constructs a Reader with no caching, as if in mode Reader.FileMode.MEMORY, without using a File instance.
        Parameters:
        source - the InputStream that contains the MaxMind DB file.
        Throws:
        IOException - if there is an error reading from the Stream.
      • Reader

        public Reader​(InputStream source,
                      NodeCache cache)
               throws IOException
        Constructs a Reader with the specified backing cache, as if in mode Reader.FileMode.MEMORY, without using a File instance.
        Parameters:
        source - the InputStream that contains the MaxMind DB file.
        cache - backing cache instance
        Throws:
        IOException - if there is an error reading from the Stream.
      • Reader

        public Reader​(File database,
                      Reader.FileMode fileMode)
               throws IOException
        Constructs a Reader for the MaxMind DB format, with no caching. The file passed to it must be a valid MaxMind DB file such as a GeoIP2 database file.
        Parameters:
        database - the MaxMind DB file to use.
        fileMode - the mode to open the file with.
        Throws:
        IOException - if there is an error opening or reading from the file.
      • Reader

        public Reader​(File database,
                      Reader.FileMode fileMode,
                      NodeCache cache)
               throws IOException
        Constructs a Reader for the MaxMind DB format, with the specified backing cache. The file passed to it must be a valid MaxMind DB file such as a GeoIP2 database file.
        Parameters:
        database - the MaxMind DB file to use.
        fileMode - the mode to open the file with.
        cache - backing cache instance
        Throws:
        IOException - if there is an error opening or reading from the file.
    • Method Detail

      • get

        public Object get​(InetAddress ipAddress)
                   throws IOException
        Looks up the address in the MaxMind DB.
        Parameters:
        ipAddress - the IP address to look up.
        Returns:
        the record for the IP address.
        Throws:
        IOException - if a file I/O error occurs.
      • countryToIP

        public void countryToIP​(String country,
                                Writer out)
                         throws IOException
        I2P - Write all IPv4 address ranges for the given country to out.
        Parameters:
        country - two-letter uppper-case
        out - caller must close
        Throws:
        IOException
        Since:
        0.9.48
      • getMetadata

        public Metadata getMetadata()
        Returns:
        the metadata for the MaxMind DB file.
      • close

        public void close()
                   throws IOException
        /**

        Closes the database.

        If you are using FileMode.MEMORY_MAPPED, this will not unmap the underlying file due to a limitation in Java's MappedByteBuffer. It will however set the reference to the buffer to null, allowing the garbage collector to collect it.

        Specified by:
        close in interface AutoCloseable
        Specified by:
        close in interface Closeable
        Throws:
        IOException - if an I/O error occurs.