Actualités WEB et WordPress, thèmes, plugins. Ici, nous partageons des conseils et les meilleures solutions de sites Web.

Implémentation de la géolocalisation IP en utilisant Free IP2Location LITE et PHP

70

Visitez n’importe quel site Web et vous trouverez très probablement une forme de localisation utilisée. La plus courante est la diffusion d’annonces locales, même si le site Web peut être étranger. À l’aide de l’adresse IP du visiteur Web, l’exploitant du site Web peut cibler des publicités, des contenus pertinents ou modifier la langue du site Web en fonction de votre pays de géolocalisation.

Nous allons explorer comment implémenter cette fonctionnalité de géolocalisation dans votre propre site Web en utilisant PHP. La partie 1 traite de la création de la base de données et de la table ainsi que de l’importation des données. La partie 2 montrera comment utiliser PHP pour interroger la base de données et récupérer les résultats.

Partie 1: Importation des données de géolocalisation

Supposons que votre site Web exécute un serveur Web Apache avec PHP alimentant le backend. Nous supposerons que vous utilisez MySQL car PHP fonctionne généralement avec MySQL.

La première étape consiste à télécharger le fichier de base de données DB11 LITE à partir de https://lite.ip2location.com/database/ip-country-region-city-latitude-longitude-zipcode-timezone qui est gratuit après inscription.

Une fois que vous avez téléchargé le fichier compressé, extrayez le fichier de données IP2LOCATION-LITE-DB11.CSV dans un dossier appelé /root/ip2location_data(ce n’est qu’un exemple de nom de dossier).

Dans votre MySQL, exécutez ce qui suit pour créer la base de données et la table dans laquelle nous stockerons les données DB11.

CREATE DATABASE ip2location;
USE ip2location;
CREATE TABLE `ip2location_db11`(
    `ip_from` INT(10) UNSIGNED,
    `ip_to` INT(10) UNSIGNED,
    `country_code` CHAR(2),
    `country_name` VARCHAR(64),
    `region_name` VARCHAR(128),
    `city_name` VARCHAR(128),
    `latitude` DOUBLE,
    `longitude` DOUBLE,
    `zip_code` VARCHAR(30),
    `time_zone` VARCHAR(8),
    INDEX `idx_ip_to` (`ip_to`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

Exécutez maintenant ce qui suit dans MySQL pour importer les données.

LOAD DATA LOCAL
    INFILE '/root/ip2location_data/IP2LOCATION-LITE-DB11.CSV'
INTO TABLE
    `ip2location_db11`
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY 'rn'
IGNORE 0 LINES;

Partie 2: Interrogation des données de géolocalisation dans votre page Web PHP

Nous allons maintenant créer la page Web PHP pour interroger la base de données et générer les données de géolocalisation pour le visiteur de la page.

Créez une page appelée test.phpet collez-y le code suivant.

<?php
$dbname = 'ip2location'; // database name
$dbhost = 'localhost'; // database server name
$dbuser = 'root'; // database user login
$dbpass = '12345'; // database user password
?>
<!DOCTYPE html>
<head>
    <title>Test page</title>
</head>
<body>
<?php
try {
    $pdo = new PDO('mysql:host='. $dbhost. ';dbname='. $dbname. ';charset=utf8', $dbuser, $dbpass);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
     
    $ip = $_SERVER['REMOTE_ADDR']; // web visitor's IP address
     
    $st = $pdo->prepare('select * from `ip2location_db11` where inet_aton(:ip) <= ip_to limit 1');
    $st->bindParam(':ip', $ip, PDO::PARAM_STR);
    $st->execute();
     
    $data = $st->fetchAll(PDO::FETCH_ASSOC);
     
    if ($st->rowCount() > 0) {
     echo 'country_code: '. $data[0]['country_code']. "<br />n";
     echo 'country_name: '. $data[0]['country_name']. "<br />n";
     echo 'region_name: '. $data[0]['region_name']. "<br />n";
     echo 'city_name: '. $data[0]['city_name']. "<br />n";
     echo 'latitude: '. $data[0]['latitude']. "<br />n";
     echo 'longitude: '. $data[0]['longitude']. "<br />n";
     echo 'zip_code: '. $data[0]['zip_code']. "<br />n";
     echo 'time_zone: '. $data[0]['time_zone']. "<br />n";
    }
    else {
     echo 'No data found.<br />'. "n";
    }
}
catch(PDOException $e) {
    echo 'An error has occurred.<br />'. "n";
}
?>
</body>
</html>

Ouvrez maintenant cette page dans votre navigateur. Vous devriez voir toutes les données de géolocalisation pour votre propre adresse IP. Une fois que vous pouvez voir tous les champs de géolocalisation renvoyés par les données IP2Location DB11 LITE, vous pouvez les utiliser dans de nombreux scénarios. Vous pouvez filtrer le trafic, bloquer ou rediriger les utilisateurs en fonction de leur emplacement.

Si vous avez d’autres questions sur la mise en œuvre, vous pouvez trouver d’autres tutoriels sur IP2Location Blog.

Source d’enregistrement: artisansweb.net

Ce site utilise des cookies pour améliorer votre expérience. Nous supposerons que cela vous convient, mais vous pouvez vous désinscrire si vous le souhaitez. J'accepte Plus de détails