✅ WEB і WordPress новини, теми, плагіни. Тут ми ділимося порадами і кращими рішеннями для сайтів.

Впровадження геолокації IP за допомогою безкоштовних IP2Location LITE та PHP

30

Відвідайте будь-які веб-сайти, і ви, швидше за все, знайдете якусь локалізацію, яка використовується. Найпоширенішим є показ місцевої реклами, хоча веб-сайт може бути іноземним. Використовуючи IP-адресу відвідувача веб-сайту, оператор веб-сайту може націлювати оголошення на відповідну рекламу, вміст або змінювати мову веб-сайту відповідно до вашої країни геолокації.

Ми розглянемо, як застосувати цю функцію геолокації на своєму власному веб-сайті за допомогою PHP. Частина 1 стосується створення бази даних та таблиці, а також імпортування даних. Частина 2 покаже, як використовувати PHP для запиту до бази даних та отримання результатів.

Частина 1: Імпорт даних геолокації

Припустимо, на вашому веб-сайті працює веб-сервер Apache з PHP, що живить серверну систему. Ми припустимо, що ви використовуєте MySQL, оскільки PHP зазвичай працює з MySQL.

Першим кроком є ​​завантаження файлу бази даних DB11 LITE з https://lite.ip2location.com/database/ip-country-region-city-latitude-longitude-zipcode-timezone, який вільний після реєстрації.

Завантаживши заархівований файл, витягніть файл даних IP2LOCATION-LITE-DB11.CSV до папки з назвою /root/ip2location_data(це лише приклад назви папки).

У вашому MySQL виконайте наступне, щоб створити базу даних і таблицю, в якій ми будемо зберігати дані 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;

Тепер запустіть наступне в MySQL, щоб імпортувати дані.

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;

Частина 2: Запит даних про геолокацію на вашій веб-сторінці PHP

Тепер ми створимо веб-сторінку PHP для запиту бази даних та виведення даних про геолокацію для відвідувача сторінки.

Створіть сторінку із назвою test.phpта вставте в неї наступний код.

<?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>

Тепер відкрийте цю сторінку у своєму браузері. Ви повинні побачити всі дані геолокації для вашої власної IP-адреси. Як тільки ви побачите всі поля геолокації, що повертаються даними IP2Location DB11 LITE, ви можете використовувати їх у багатьох сценаріях. Ви можете фільтрувати трафік, блокувати або переспрямовувати користувачів за їх місцезнаходженням.

Якщо у вас є додаткові запитання щодо впровадження, ви можете знайти більше підручників у блозі IP2Location.

Джерело запису: artisansweb.net

Цей веб -сайт використовує файли cookie, щоб покращити ваш досвід. Ми припустимо, що з цим все гаразд, але ви можете відмовитися, якщо захочете. Прийняти Читати далі