Implementieren der IP-Geolocation in PHP mit der PECL-Installation

Geolokalisierung ist eine wichtige Funktion für eine Website, da sie es Online-Unternehmen ermöglicht, gezielte Inhalte für potenzielle Nutzer basierend auf ihrer geografischen Lage bereitzustellen. Durch die Verwendung von Geolokalisierungsdaten kann der Websitebetreiber lokalisierte Inhalte wie lokale Nachrichten, Wetter und Veranstaltungen bereitstellen und diese in der jeweiligen Landessprache anzeigen lassen. Es kann auch helfen, Betrug zu verhindern, indem Unternehmen verdächtige Aktivitäten aus bestimmten geografischen Regionen erkennen und blockieren. Es ist ein wichtiges Werkzeug für Websitebetreiber und Entwickler, um die Benutzererfahrung zu verbessern und Betrug zu verhindern.

Geolokalisierung kann auf verschiedene Weisen implementiert werden, wie zum Beispiel auf der Webserver-Ebene, der Programmiersprachebene oder durch die Verwendung eines SDKs. In unserem vorherigen Artikel haben wir gezeigt, wie man Geolokalisierung in den Apache-Server einbaut. In diesem Artikel werde ich einen anderen Ansatz verfolgen und Geolokalisierung in die PHP-Sprache mithilfe der PECL-Installation einbauen. Für diese Demonstration werden wir IP2Location, den gleichen Geolokalisierungsanbieter, verwenden, damit Sie verstehen können, wie Geolokalisierung in verschiedenen Umgebungen funktioniert.

IP2Location Übersicht

IP2Location ist eine Datenbank, die Informationen über IP-Adressen und deren zugehörige Standorte enthält. Die Datenbank enthält eine Vielzahl von Informationen, darunter das Land, die Region, die Stadt, Breiten- und Längengrad, Zeitzone, Postleitzahl, Ortsnetz, Mobilfunkinformationen, Verwendungstyp und viele weitere Informationen zu der IP-Adresse.

Um IP2Location zu verwenden, benötigen Sie eine Kopie der Datenbank und laden sie in Ihre Anwendung. Sobald die Datenbank geladen ist, können Sie sie verwenden, um IP-Adressen zu geolokalisieren und Informationen über die damit verbundenen Standorte abzurufen.

Hinweis: Verschiedene Versionen der Datenbanken enthalten eine unterschiedliche Granularität der Standortinformationen. Sie müssen die richtige für Ihre Implementierung auswählen.

PECL Installationsübersicht

PECL (PHP Extension Community Library) ist ein Repository von PHP Erweiterungen, die Ihnen ermöglichen, Ihrer PHP-Anwendung zusätzliche Funktionalität hinzuzufügen. Die IP2Location-Erweiterung ist eine der in PECL verfügbaren Erweiterungen und ermöglicht es Ihnen, IP2Location in Ihrer PHP-Anwendung zu verwenden.

Um die IP2Location-Erweiterung zu verwenden, müssen Sie sie auf Ihrem Server mit PECL installieren. Sobald die Erweiterung installiert ist, können Sie sie in Ihrem PHP-Code verwenden, um IP-Adressen zu geolokalisieren und Informationen über die damit verbundenen Standorte abzurufen. In diesem Tutorial gehe ich davon aus, dass Sie bereits Apache und PHP installiert haben und mit Debian 11 vertraut sind.

Schritt-für-Schritt-Anleitung zur Implementierung der IP-Geolokalisierung in PHP mit PECL

Schritt 1: PECL installieren

Der erste Schritt zur Implementierung von IP2Location in PHP besteht darin, PECL zu installieren. Um PECL zu installieren, benötigen Sie die PHP-Entwickler-Header und -Werkzeuge auf Ihrem System. Sie können diese mithilfe Ihres Paketmanagers installieren, falls sie noch nicht eingerichtet wurden. Beispielsweise können Sie unter Ubuntu oder Debian den folgenden Befehl ausführen:

  • sudo apt-get install php-dev php-pear

Schritt 2: Installieren der IP2Location C-Bibliothek 

Sie benötigen die IP2Location C-Bibliothek, um das PHP-Modul zu kompilieren. Führen Sie dazu einfach den folgenden Befehl aus:

  • sudo apt-get install git

Dies installiert den git-Befehl. Führen Sie anschließend den unten stehenden Befehl aus, um das IP2Location GitHub-Projekt zu klonen:

  • sudo git clone https://github.com/chrislim2888/IP2Location-C-Library

Führen Sie dann im Projektordner den folgenden Befehl aus:

 

autoreconf -i -v --force
./configure
make
make install

Der obige Befehl installiert die IP2Location C-Bibliothek. 

Schritt 3: Installieren der IP2Location-Erweiterung 

Nun, da Sie PECL installiert haben, können Sie die IP2Location-Erweiterung installieren. Führen Sie dazu einfach den folgenden Befehl aus:

  • sudo pecl install ip2location

Dies lädt die IP2Location-Erweiterung für PHP herunter und installiert sie.

Schritt 4: Konfigurieren von PHP zur Verwendung der IP2Location-Erweiterung 

Nachdem Sie die IP2Location-Erweiterung installiert haben, müssen Sie PHP so konfigurieren, dass es sie verwendet. Dazu müssen Sie eine Zeile in Ihrer php.ini-Datei hinzufügen.

Um Ihre php.ini-Datei zu finden, können Sie den folgenden Befehl ausführen:

  • php -i | grep php.ini

Dies wird den Pfad zu Ihrem php.ini Datei ausgeben. Sobald Sie den Pfad haben, können Sie die Datei in Ihrem Texteditor Ihrer Wahl öffnen.

Als Nächstes fügen Sie die folgende Zeile zu Ihrer php.ini Datei hinzu:

  • extension=ip2location.so

Dies gibt dem PHP Anweisungen, die IP2Location Erweiterung zu laden.

Schritt 5: Apache Neustart

Sie müssen den Apache Server neu starten, um die PHP-Module-Liste zu aktualisieren. Führen Sie dazu den folgenden Befehl aus:

  • sudo service apache2 restart

Anschließend können Sie den folgenden Befehl ausführen, um zu überprüfen, ob die IP2Location-Modul erfolgreich installiert und geladen wurde:

  • php -m | grep ip2location

Sie sollten die IP2location bemerken, nachdem Sie den obigen Befehl ausgeführt haben.

Schritt 6: IP2Location-Datenbank herunterladen 

Bevor Sie IP2Location verwenden können, um die Position eines IP-Adresses zu identifizieren, müssen Sie die IP2Location-Datenbank herunterladen. Diese Datenbank enthält Informationen über die geografische Lage jeder IP-Adresse.

Sie können die kostenlose Datenbank von der IP2Location LITE Website herunterladen. Es stehen mehrere verschiedene Datenbankversionen zur Verfügung, stellen Sie also sicher, dass Sie diejenige auswählen, die für Ihre Bedürfnisse geeignet ist.

Schritt 7: Schreiben Sie Ihren PHP-Code

Nun, da Sie die IP2Location-Erweiterung installiert und die Datenbank heruntergeladen haben, sind Sie bereit, IP2Location in Ihrem PHP-Code zu verwenden. Hier ist ein Beispiel:

PHP

 

// Laden der Datenbank
ip2location_open('path/to/database.bin');

Sobald Sie die Datenbank geladen haben, können Sie die IP2Location-Klasse verwenden, um die Position einer IP-Adresse zu identifizieren. Hier ist ein Beispiel:

PHP

 

// Die Standortinformationen ausgeben
echo 'Country code: ' . ip2location_get_country_short(‘8.8.8.8’) . “\n”';
echo 'Country name: ' . ip2location_get_country_long(‘8.8.8.8’) . “\n”;

Sie erhalten das folgende Ergebnis:

Vorteile und Nachteile der Installation von PECL für Geolokalisierung

Der PHP PECL ist im Vergleich zu Apache-Modulen relativ einfach zu installieren, da nur die notwendigen PHP-Entwickler-Header und -Werkzeuge installiert werden müssen. Und es ist flexibler, da es nicht an einen bestimmten Webserver gebunden ist, es kann auf jedem System verwendet werden, das PHP unterstützt.

Es gibt jedoch auch Nachteile bei der Verwendung dieser Lösung. Um PHP PECL zu verwenden, benötigen Sie einige Kenntnisse in PHP, den Linux-Befehlen und den Grundlagen des Paketierungsprozesses. PHP PECL kann für Websites mit hohem Datenverkehr nicht so gut performen wie ein Apache-Modul, da es einer zusätzlichen Verarbeitungsschicht in PHP hinzufügt.

Schlussfolgerung

Es ist wichtig, die Vor- und Nachteile jedes GeolokalisierungsImplementierungs-Ansatzes sorgfältig abzuwägen, um zu bestimmen, welcher am besten zu Ihren spezifischen Bedürfnissen passt. Faktoren wie Ihre technische Expertise, der Server-Plattform und die Leistungsanforderungen sollten alle bei der Entscheidungsfindung berücksichtigt werden.

Source:
https://dzone.com/articles/implementing-ip-geolocation-in-php-using-the-pecl-install