				GeoIP 1.3.14
				------------

IMPORTANT API Change for 1.3.x and above users for GeoIP Region database
GeoIPRegion.region is no longer a pointer but an in-structure
array so test the first byte of region == 0 rather testing if the region
pointer is NULL.

IMPORTANT API Change for 1.1.x and above users - as of GeoIP 1.1.0 the
GeoIP_country_xxx_by_xxx functions 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, to avoid segmentation faults!

GeoIP is a C library that enables the user to find the country that any
IP address or hostname originates from.  It contains a free GeoIP Country database
that is updated at the beginning of every month.
To download the latest free GeoIP Country database, go to:
http://www.maxmind.com/download/geoip/database/GeoIP.dat.gz

This database simply contains IP blocks
as keys, and countries as values.  We also offer a paid database
that has greater accuracy than the free version, as well as paid databases
with city level resolution.  For more details on the paid products see:
http://www.maxmind.com/app/geoip_country
http://www.maxmind.com/app/products

As of version 1.3.6, the GeoIP C library is thread safe.

This module can be used to automatically select the geographically closest
mirror, to analyze your web server logs to determine the countries of your
visitors, for credit card fraud detection, and for software export controls. 

To install, run:

./configure
make
make check
make install

The GeoIP C library relies on GNU make, not on BSD make

For more information, including how to purchase database updates, go to
http://maxmind.com/

MEMORY CACHING AND OTHER OPTIONS

There are four options available:

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

EXAMPLES

See
test/
     test-geoip.c
     test-geoip-region.c
     test-geoip-city.c
     test-geoip-isp.c
     test-geoip-org.c
     test-geoip-netspeed.c

For examples of how to use the API.  The test-geoip.c works with both the free and paid
GeoIP Country databases.  The other example programs require the paid databases available
from http://www.maxmind.com/app/products

AUTOMATIC UPDATES

MaxMind offers a service where you can have your database updated
automically each week.  For more details see:

http://www.maxmind.com/app/license_key

TROUBLESHOOTING

Note that it is recommended that you use GNU make.  Also, if you are using
OpenBSD, GeoIP requires OpenBSD 3.1 or greater.

if you get "cannot load shared object file: No such file or directory"
error, add the directory libGeoIP.so was installed to to /etc/ld.so.conf
and run ldconfig

On Solaris, if you get a
ld: fatal: relocations remain against allocatable but non-writable sections
error, try running

# make clean
# ./configure --disable-shared
# make

If you get a "ar : command not found" error, make sure that ar is
in your path.  On Solaris, ar is typically found in /usr/ccs/bin

If you get a "geoipupdate.c:24: getopt.h: No such file or directory"
error, run

# export CPPFLAGS="-I/usr/local/include"

(assuming that getopt.h is in /usr/local/include)

If you get a "zlib.h: No such file or directory" error, make sure
that the zlib development libraries are installed on your server.
These are typically included in a "zlib-devel" package.

If you get a "bad interpreter: No such file or directory" error
when running ./configure, make sure that there are no DOS
returns in the configure script.  To remove DOS returns,
run perl -pi -e 's!\r!!g' configure.

Please contact support@maxmind.com with any questions or bug
reports.
