PHP : Function Reference : GeoIP Functions
The GeoIP extension allows you to find the location of an IP address. City,
State, Country, Longitude, Latitude, and other information as all, such as
ISP and connection type can be obtained with the help of GeoIP.
This extension requires the GeoIP C library version 1.4.0 or higher to be
installed. You can grab the latest version from
» http://www.maxmind.com/app/c
and compile it yourself.
By default, you will only have access to the Free GeoIP Country or GeoLite
City databases. While this module can work with other types of database,
you must buy a commercial license from
» Maxmind.
This extension has no resource types defined.
The constants below are defined by this extension, and
will only be available when the extension has either
been compiled into PHP or dynamically loaded at runtime.
-
GEOIP_COUNTRY_EDITION
(integer)
-
-
GEOIP_REGION_EDITION_REV0
(integer)
-
-
GEOIP_CITY_EDITION_REV0
(integer)
-
-
GEOIP_ORG_EDITION
(integer)
-
-
GEOIP_ISP_EDITION
(integer)
-
-
GEOIP_CITY_EDITION_REV1
(integer)
-
-
GEOIP_REGION_EDITION_REV1
(integer)
-
-
GEOIP_PROXY_EDITION
(integer)
-
-
GEOIP_ASNUM_EDITION
(integer)
-
-
GEOIP_NETSPEED_EDITION
(integer)
-
-
GEOIP_DOMAIN_EDITION
(integer)
-
The following constants are for net speed:
-
GEOIP_UNKNOWN_SPEED
(integer)
-
GEOIP_DIALUP_SPEED
(integer)
-
GEOIP_CABLEDSL_SPEED
(integer)
-
GEOIP_CORPORATE_SPEED
(integer)
eddieremovethis
Try renaming GeoLiteCity.dat to GeoIPCity.dat.
tjmather
The geoip_country_*_by_name functions only work with GeoIP Country. The geoip_record_by_name function works with GeoIP City. geoip_region_by_name works with GeoIP Region. So the API should work with all of the GeoIP databases, as long as you call the correct function.
php dot comment dot addition
Just to clarify the other comments, the maxmind post seems to be out of date / incorrect.
This module fails to work (ie: resolve cities) with the GeoLite City database from here: http://www.maxmind.com/app/geolitecity
The error occurs when calling the function geoip_record_by_name(), which states incorrectly that the required database is not available. I have tested it with the very latest database, for which geoip_database_info() returns the version:
GEO-533LITE 20070601 Build 1 Copyright (c) 2007 MaxMind LLC All Rights Reserved
It does, however, resolve countries OK via the GeoLite Country database, which you can grab here: http://www.maxmind.com/app/geoip_country
I tested with the version:
GEO-106FREE 20070601 Build 1 Copyright (c) 2007 MaxMind LLC All Rights Reserved
judas dot iscariote
matt
If you are a Debian or Ubuntu user, instead of building it from source, you can:
aptitude install libgeoip-dev libgeoip1
27-jan-2007 01:23
I couldn't get it to work with the DMA code database (product ID 137). It seems to only work with the country database. The documentation should contain a warning that this code (as of 0.2.0) is incomplete and that Net_GeoIP should be used for non-country databases.
christian
Both, Ubuntu and Debian itself make usage of version 1.3.x of the c libraries, so installation can't be done with the debian packages, because configure stops with:
== configure: error: You need version 1.4.0 or higher of the C API ==
so you must download it from maxmind.
|