...
✅ Notizie, temi, plugin WEB e WordPress. Qui condividiamo suggerimenti e le migliori soluzioni per siti web.

Implementazione della geolocalizzazione IP utilizzando IP2Location LITE e PHP gratuiti

27

Visita qualsiasi sito Web e molto probabilmente troverai una qualche forma di localizzazione in uso. Il più comune è la visualizzazione di annunci locali anche se il sito web potrebbe essere straniero. Utilizzando l’indirizzo IP del visitatore Web, l’operatore del sito Web può indirizzare annunci, contenuti pertinenti o modificare la lingua del sito Web in base al paese di geolocalizzazione.

Esploreremo come implementare questa funzionalità di geolocalizzazione nel tuo sito Web utilizzando PHP. La parte 1 si occupa della creazione del database e della tabella e dell’importazione dei dati. La parte 2 mostrerà come utilizzare PHP per interrogare il database e recuperare i risultati.

Parte 1: Importazione dei dati di geolocalizzazione

Supponiamo che il tuo sito Web esegua un server Web Apache con PHP che alimenta il backend. Supponiamo che tu stia usando MySQL poiché PHP di solito funziona con MySQL.

Il primo passo è scaricare il file del database DB11 LITE da https://lite.ip2location.com/database/ip-country-region-city-latitude-longitude-zipcode-timezone che è gratuito dopo la registrazione.

Una volta scaricato il file zippato, estrai il file di dati IP2LOCATION-LITE-DB11.CSV in una cartella chiamata /root/ip2location_data(questo è solo un nome di cartella di esempio).

Nel tuo MySQL, esegui quanto segue per creare il database e la tabella in cui memorizzeremo i dati 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;

Ora esegui quanto segue in MySQL per importare i dati.

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: Interrogazione dei dati di geolocalizzazione nella tua pagina web PHP

Ora creeremo la pagina Web PHP per interrogare il database e restituire i dati di geolocalizzazione per il visitatore della pagina.

Crea una pagina chiamata test.phpe incollaci il seguente codice.

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

Ora apri quella pagina nel tuo browser. Dovresti vedere tutti i dati di geolocalizzazione per il tuo indirizzo IP. Una volta che puoi vedere tutti i campi di geolocalizzazione restituiti dai dati IP2Location DB11 LITE, puoi usarli in molti scenari. Puoi filtrare il traffico, bloccare o reindirizzare gli utenti in base alla loro posizione.

Se hai altre domande sull’implementazione, puoi trovare altri tutorial nel blog IP2Location.

Fonte di registrazione: 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