Localisation géographique des IPs

Introduction

L'extension GeoIP permet de localiser une adresse IP. La ville, l'Ă©tat, le pays, la longitude, la latitude et d'autres informations comme l'ISP et le type de connexion peuvent ĂȘtre obtenus grĂące Ă  GeoIP.

Avertissement

Cette extension ne supporte pas les bases de données "GeoIP2" actuelles de MaxMind, uniquement les fichiers de base de données "GeoIP Legacy".

add a note

User Contributed Notes 2 notes

up
31
mark at moderndeveloperllc dot com ¶
12 years ago
It should be noted that this extension has now been superseded by the GeoIP2 API that MaxMind now produces. There is a pure-PHP set of classes and a C library and extension you can optionally install. The code can be found in various projects on MaxMind's GitHub page: https://github.com/maxmind/
up
25
webmaster at isag dot melbourne ¶
7 years ago
With GeoIP2, the easiest way is to:

* Grab the latest GeoIP2 Lite Database(s): https://dev.maxmind.com/geoip/geoip2/geolite2/
* Grab the latest geoip2.phar: https://github.com/maxmind/GeoIP2-php/releases

<?php
require_once("geoip2.phar");
use GeoIp2\Database\Reader;
// City DB
$reader = new Reader('/path/to/GeoLite2-City.mmdb');
$record = $reader->city($_SERVER['REMOTE_ADDR']);
// or for Country DB
// $reader = new Reader('/path/to/GeoLite2-Country.mmdb');
// $record = $reader->country($_SERVER['REMOTE_ADDR']);
print($record->country->isoCode . "\n");
print($record->country->name . "\n");
print($record->country->names['zh-CN'] . "\n");
print($record->mostSpecificSubdivision->name . "\n");
print($record->mostSpecificSubdivision->isoCode . "\n");
print($record->city->name . "\n");
print($record->postal->code . "\n");
print($record->location->latitude . "\n");
print($record->location->longitude . "\n");
$>