✅ Noticias, temas, complementos de WEB y WordPress. Aquí compartimos consejos y las mejores soluciones para sitios web.

Implementación de la geolocalización de IP usando Free IP2Location LITE y PHP

122

Visite cualquier sitio web y lo más probable es que encuentre algún tipo de localización en uso. El más común es mostrar anuncios locales aunque el sitio web sea extranjero. Al utilizar la dirección IP del visitante de la web, el operador del sitio web puede orientar anuncios y contenidos relevantes o cambiar el idioma del sitio web en función de su país de geolocalización.

Exploraremos cómo implementar esta función de geolocalización en su propio sitio web utilizando PHP. La parte 1 trata de la creación de la base de datos y la tabla, así como de la importación de los datos. La parte 2 mostrará cómo usar PHP para consultar la base de datos y recuperar los resultados.

Parte 1: Importación de los datos de geolocalización

Supongamos que su sitio web está ejecutando un servidor web Apache con PHP que alimenta el backend. Asumiremos que está usando MySQL ya que PHP generalmente opera con MySQL.

El primer paso es descargar el archivo de base de datos DB11 LITE desde https://lite.ip2location.com/database/ip-country-region-city-latitude-longitude-zipcode-timezone, que es gratuito después de registrarse.

Una vez que haya descargado el archivo comprimido, extraiga el archivo de datos IP2LOCATION-LITE-DB11.CSV a una carpeta llamada /root/ip2location_data(este es solo un ejemplo de nombre de carpeta).

En su MySQL, ejecute lo siguiente para crear la base de datos y la tabla en la que almacenaremos los datos 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;

Ahora ejecute lo siguiente en MySQL para importar los datos.

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;

Parte 2: Consultar los datos de geolocalización en su página web PHP

Ahora crearemos la página web PHP para consultar la base de datos y generar los datos de geolocalización para el visitante de la página.

Cree una página llamada test.phpy pegue el siguiente código en ella.

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

Ahora abra esa página en su navegador. Debería ver todos los datos de geolocalización de su propia dirección IP. Una vez que pueda ver todos los campos de geolocalización devueltos por los datos de IP2Location DB11 LITE, puede usarlos en muchos escenarios. Puede filtrar el tráfico, bloquear o redirigir a los usuarios según sus ubicaciones.

Si tiene más preguntas sobre la implementación, puede encontrar más tutoriales en el Blog de IP2Location.

Fuente de grabación: artisansweb.net

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More