MaxMind GeoIP PHP API
This API is for the GeoIP Legacy format (dat). To read the MaxMind DB format (mmdb) used by GeoIP2, please see our GeoIP2 PHP API.
This module has no external dependencies. You only need a MaxMind GeoIP database. To download a free GeoLite Legacy Country database, please see our GeoLite Legacy page.
We recommend installing this package with Composer.
To download Composer, run in the root directory of your project:
curl -sS https://getcomposer.org/installer | php
You should now have the file
composer.phar in your project directory.
Run in your project root:
php composer.phar require geoip/geoip:~1.16
You should now have the files
composer.lock as well as
vendor in your project directory. If you use a version control
composer.json should be added to it.
After installing the dependencies, you need to require the Composer autoloader from your code:
Place the 'geoip.inc' file in the
include_path as specified in your
php.ini file or place it in the same directory as your PHP scripts.
IP geolocation is inherently imprecise. Locations are often near the center of the population. Any location provided by a GeoIP database should not be used to identify a particular address or household.
Gets country name by hostname :
<?php require 'vendor/autoload.php'; $gi = geoip_open("/usr/local/share/GeoIP/GeoIP.dat",GEOIP_STANDARD); echo geoip_country_code_by_addr($gi, "18.104.22.168") . "\t" . geoip_country_name_by_addr($gi, "22.214.171.124") . "\n"; echo geoip_country_code_by_addr($gi, "126.96.36.199") . "\t" . geoip_country_name_by_addr($gi, "188.8.131.52") . "\n"; geoip_close($gi);
To enable memory caching, pass
as the second argument of
GEOIP_SHARED_MEMORY requires php >= 4.0.4 compiled with
configure time. See (http://us2.php.net/manual/en/ref.shmop.php).
In addition, you should call
geoip_load_shared_mem before calling
sample_city.php for an example of shared memory caching.
This code is tested on PHP 5.3 and greater. Older versions of PHP may work.
This API also works and is tested with HHVM. The shared-memory mode does not currently work on HHVM as HHVM does not support PHP's shared memory functions.
For help with this API or our databases, please see our support page.
This software is Copyright (c) 2016 by MaxMind, Inc.
This is free software, licensed under the GNU Lesser General Public License version 2.1 or later.
Thanks to Jim Winstead.