Skip to content

tmcneal/geo-ip

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This is a modified version of the Java API to MaxMinds GEO-IP
Service. 

The only modification currently is the move to the standardized maven2
file/directory layout and providing it as a maven2 dependency in my 
own repo 

http://m2.dominikdorn.com/

In the future, I will try to integrate the tests already provided by maxmind
and enhance the stuff even further, for easy inclusion in servlet &/ jsf-based
web-applications. 

You can always get this project at
http://github.com/domdorn/geo-ip


As the original code, all code here is available under the LGPL, see LICENCE
file for details.



The original README follows now:
================================

To get started, run

cd source/com/maxmind/geoip/
javac *.java
cd -
CLASSPATH=".:source" javac *.java
CLASSPATH=".:source" java CountryLookupTest

By default, CountryLookupTest expects to find the
GeoIP Country database in /usr/local/share/GeoIP/GeoIP.dat

IMPORTANT API Change for 1.1.x users - as of GeoIP 1.1.0 the
lookupCountryXxxx methods return null if a country can not
be found (it used to return '--' or 'N/A'.  Be sure to check the
return value for null !

This is version 1.2.3 of the Java interface to GeoIP.  For more information
see http://www.maxmind.com/

As of version 1.1.4 this API is fully thread safe.

To get started for GeoIP Country, look at the code in CountryLookupTest.java.

CityLookupTest.java contains an example for the MaxMind GeoIP City database.
OrgLookupTest.java contains examples for the GeoIP Organization and ISP databases.
RegionLookupTest.java contains an example for the MaxMind GeoIP Region database.
NetspeedLookupTest.java contains an example for the MaxMind GeoIP Netspeed database.

BenchmarkGeoIP.java contains benchmarks for various databases using various options.

Note that CountryLookupTest assumes that you have the GeoIP Country database
installed at /usr/local/share/GeoIP/GeoIP.dat

A free GeoLite Country database is available from:
http://www.maxmind.com/app/geoip_country

A free GeoLite City database is available from:
http://www.maxmind.com/app/geolitecity

MaxMind GeoIP Country offers greater accuracy over the free database.
MaxMind GeoIP Country, Region, City, ISP, and Organization are available
for purchase from here:
http://www.maxmind.com/app/products

Please send any comments to support@maxmind.com

To generate the JAR file, cd to the source directory and run

jar cf maxmindgeoip.jar com/maxmind/geoip/Country.class com/maxmind/geoip/DatabaseInfo.class com/maxmind/geoip/Location.class com/maxmind/geoip/LookupService.class com/maxmind/geoip/Region.class


MEMORY CACHING AND OTHER OPTIONS
================================
The following options can be passed as the second parameter to the
LookupService constructor:

GEOIP_STANDARD - read database from filesystem, uses least memory.

GEOIP_MEMORY_CACHE - load database into memory, faster performance
        but uses more memory

GEOIP_CHECK_CACHE - check for updated database.  If database has been updated,
        reload filehandle and/or memory cache.

GEOIP_INDEX_CACHE - just cache
        the most frequently accessed index portion of the database, resulting
        in faster lookups than GEOIP_STANDARD, but less memory usage than
        GEOIP_MEMORY_CACHE - useful for larger databases such as
        GeoIP Organization and GeoIP City.  Note, for GeoIP Country, Region
        and Netspeed databases, GEOIP_INDEX_CACHE is equivalent to GEOIP_MEMORY_CACHE

Note the options can be combined, for example:
LookupService cl = new LookupService(dbfile, LookupService.GEOIP_MEMORY_CACHE | LookupService.GEOIP_CHECK_CACHE);

Windows Notes 
========================
If it doesn't work on Windows, try to remove or comment out all the "package com.maxmind.geoip" lines 
from all the files.

About

java implementation of MaxMinds GEO-IP API, Maven2 based

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 98.6%
  • Perl 1.4%