Home  >  Article  >  Backend Development  >  Example of using GeoIP library in php_PHP tutorial

Example of using GeoIP library in php_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 10:26:101139browse

It should be noted that maxmind is the provider of geoip database,
It also provides sample and API documentation in many languages.
For example, PHP is very different from PHP's geoip library, including usage methods and interface functions.
PHP's official geoip needs to configure the PHP environment, load the geoip.dll library, and specify the GEOIP library address in php.ini.
maxmind provides a series of .inc and .php files that have no dependence on the environment. As long as they support php, they can be used directly after requiring.

1. GEOIP database

http://dev.maxmind.com/geoip/geolite
Broken down into countries: GeoLite Country
Segmented into cities: GeoLite City

2. PHP official geoip.dll library

Download dll http://windows.php.net/downloads/pecl/releases/geoip/1.0.8/
Modify php.ini and enable the geoip library:

Copy the code The code is as follows:
extension=php_geoip.dll

Append geoip segment and specify database location:
Copy code The code is as follows:
[geoip]
geoip.custom_directory = "D:php5.3geo"

Test code

Note that GeoIPCity.dat used in geoip.dll is GeoLiteCity.dat, and pay attention to the prompts when using it

Copy code The code is as follows:

echo geoip_country_name_by_name( "8.8.8.8" ) . "n";
print_r( geoip_record_by_name( "8.8.8.8" ) );
echo geoip_country_name_by_name( "61.139.2.69" ). "n";
print_r( geoip_record_by_name( "61.139.2.69" ) );

3. MaxMind official php file function library

Documentation and examples: http://dev.maxmind.com/geoip/downloadable
Modify the GeoIP.dat/GeoLiteCity.dat path in sample.php and sample_city.php in the maxmind example to be your own path
For the same directory, use “./GeoIP.dat” or “./GeoLiteCity.dat”.
Detailed to country

Copy code The code is as follows:

include("geoip.inc");
$gi = geoip_open( "./GeoIP.dat", GEOIP_STANDARD );
echo geoip_country_code_by_addr($gi, "8.8.8.8") . "t" . geoip_country_name_by_addr($gi, "8.8.8.8") . "n";
echo geoip_country_code_by_addr($gi, "61.139.2.69") . "t" . geoip_country_name_by_addr($gi, "61.139.2.69") . "n";
geoip_close($gi);

Detailed to country and city

Copy code The code is as follows:

include("geoipcity.inc");
include("geoipregionvars.php");
$gi = geoip_open("./GeoLiteCity.dat",GEOIP_STANDARD);

$record = geoip_record_by_addr($gi,"8.8.8.8");
print $record->country_code . " " . $record->country_code3 . " " . $record->country_name . "n";
print $record->region . " " . $GEOIP_REGION_NAME[$record->country_code][$record->region] . "n";
print $record->city . "n";
print $record->postal_code . "n";
print $record->latitude . "n";
print $record->longitude . "n";
print $record->metro_code . "n";
print $record->area_code . "n";
print $record->continent_code . "n";

print "n-----n";
$record = geoip_record_by_addr($gi,"61.139.2.69");
print $record->country_code . " " . $record->country_code3 . " " . $record->country_name . "n";
print $record->region . " " . $GEOIP_REGION_NAME[$record->country_code][$record->region] . "n";
print $record->city . "n";
print $record->postal_code . "n";
print $record->latitude . "n";
print $record->longitude . "n";
print $record->metro_code . "n";
print $record->area_code . "n";
print $record->continent_code . "n";
geoip_close($gi);

Decide which one to use depending on your development environment and specific circumstances

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/824763.htmlTechArticleIt should be noted that maxmind is the provider of geoip database and also provides sample and API documentation in many languages. . For example, php is very different from php's geoip library, including the use of...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn