php application GeoIP library example tutorial
Note 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. (php GeoIP library entry example)
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:
Append the geoip segment and specify the database location:
-
- [geoip]
- geoip.custom_directory = "D:php5.3geo"
Copy code
Test code
Note that GeoIPCity.dat used in geoip.dll is GeoLiteCity.dat. Pay attention to the prompts when using it.
-
- 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" ). print_r ( geoip_record_by_name( "61.139.2.69" ) );
-
Copy code
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 your own path
For the same directory, use “./GeoIP.dat” or “./GeoLiteCity.dat”.
1, detailed to the country
- 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);
-
Copy code
2, details to country and city
- 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);
-
Copy code
When using the above code, you can decide which one to use based on the development environment and specific conditions.
|