✅ WEB- und WordPress-Nachrichten, Themen, Plugins. Hier teilen wir Tipps und beste Website-Lösungen.

Implementieren von IP-Geolocation mit Free IP2Location LITE und PHP

40

Besuchen Sie eine beliebige Website und Sie werden höchstwahrscheinlich feststellen, dass irgendeine Form der Lokalisierung verwendet wird. Am häufigsten werden lokale Anzeigen geschaltet, obwohl die Website möglicherweise fremd ist. Anhand der IP-Adresse des Webbesuchers kann der Websitebetreiber auf relevante Anzeigen und Inhalte ausgerichtet oder die Sprache der Website basierend auf Ihrem Geolokalisierungsland ändern.

Wir werden untersuchen, wie Sie diese Geolokalisierungsfunktion mithilfe von PHP in Ihre eigene Website implementieren können. Teil 1 befasst sich mit der Erstellung der Datenbank & Tabelle sowie dem Import der Daten. Teil 2 zeigt, wie Sie mit PHP die Datenbank abfragen und die Ergebnisse abrufen.

Teil 1: Importieren der Geolocation-Daten

Nehmen wir an, auf Ihrer Website läuft ein Apache-Webserver mit PHP als Backend. Wir gehen davon aus, dass Sie MySQL verwenden, da PHP normalerweise mit MySQL arbeitet.

Der erste Schritt besteht darin, die DB11 LITE-Datenbankdatei von. herunterzuladen https://lite.ip2location.com/database/ip-country-region-city-latitude-longitude-zipcode-timezone, die nach der Anmeldung kostenlos ist.

Nachdem Sie die ZIP-Datei heruntergeladen haben, extrahieren Sie die IP2LOCATION-LITE-DB11.CSV-Datendatei in einen Ordner namens /root/ip2location_data(dies ist nur ein Beispielordnername).

Führen Sie in Ihrem MySQL Folgendes aus, um die Datenbank und die Tabelle zu erstellen, in der wir die DB11-Daten speichern.

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;

Führen Sie nun Folgendes in MySQL aus, um die Daten zu importieren.

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;

Teil 2: Abfragen der Geolocation-Daten auf Ihrer PHP-Webseite

Wir erstellen nun die PHP-Webseite, um die Datenbank abzufragen und die Geolokalisierungsdaten für den Seitenbesucher auszugeben.

Erstellen Sie eine aufgerufene Seite test.phpund fügen Sie den folgenden Code darin ein.

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

Öffnen Sie nun diese Seite in Ihrem Browser. Sie sollten alle Geolokalisierungsdaten für Ihre eigene IP-Adresse sehen. Sobald Sie alle Geolocation-Felder sehen, die von den IP2Location DB11 LITE-Daten zurückgegeben werden, können Sie sie in vielen Szenarien verwenden. Sie können den Verkehr filtern, Benutzer basierend auf ihren Standorten blockieren oder umleiten.

Wenn Sie weitere Fragen zur Implementierung haben, finden Sie weitere Tutorials im IP2Location-Blog.

Aufnahmequelle: artisansweb.net

Diese Website verwendet Cookies, um Ihre Erfahrung zu verbessern. Wir gehen davon aus, dass Sie damit einverstanden sind, Sie können sich jedoch abmelden, wenn Sie möchten. Annehmen Weiterlesen