Geolocatie is een belangrijke functie voor een website omdat het online bedrijven in staat stelt gerichte inhoud te bieden aan potentiële gebruikers op basis van hun geografische locatie. Door het gebruik van geolocatiegegevens kan de eigenaar van de website lokale inhoud bieden, zoals lokale nieuwsberichten, weer en evenementen, en deze inhoud in de moedertaal weergeven. Het kan ook helpen bij het voorkomen van fraude door bedrijven te laten detecteren en verdachte activiteiten uit bepaalde geografische gebieden te blokkeren. Het is een belangrijk hulpmiddel voor eigenaars en ontwikkelaars van websites om de gebruikerservaring te verbeteren en fraude te voorkomen.
Geolocatie kan op verschillende manieren worden geïmplementeerd, zoals op het webserverlaag, programmeerlaag of door gebruik te maken van een SDK. In onze vorige artikel hebben we laten zien hoe geolocatie in de Apache-server kan worden geïnstalleerd. In dit artikel zal ik een andere aanpak onderzoeken door geolocatie in de PHP-taal te installeren met behulp van de PECL-installatie. Voor deze demonstratie maken we gebruik van IP2Location, dezelfde geolocatieprovider, zodat u een begrip kunt krijgen van hoe geolocatie werkt in verschillende omgevingen.
IP2Location Overzicht
IP2Location is een database die informatie bevat over IP-adressen en hun bijbehorende locaties. De database bevat een reeks informatie, waaronder het land, de regio, de stad, de breedtegraad, de lengtegraad, de tijdzone, de postcode, het netnummer, de mobiele informatie, het gebruikstype en nog veel meer van het IP-adres.
Om IP2Location te gebruiken, moet je een kopie van de database verkrijgen en deze laden in je toepassing. Zodra de database is geladen, kun je deze gebruiken om IP-adressen te geolocaliseren en informatie over hun bijbehorende locaties op te vragen.
Opmerking: Verschillende versies van de databases hebben een andere granulariteit van de locatie-informatie. Je moet de juiste kiezen voor je implementatie.
Overzicht van PECL Installatie
PECL (PHP Extension Community Library) is een repository van PHP extensies die je toelaat om aanvullende functionaliteit toe te voegen aan je PHP-toepassing. De IP2Location-extensie is een van de extensies die beschikbaar zijn in PECL, en het stelt je in staat om IP2Location in je PHP-toepassing te gebruiken.
Om de IP2Location-extensie te gebruiken, moet je deze installeren op je server met behulp van PECL. Zodra de extensie is geïnstalleerd, kun je deze gebruiken in je PHP-code om IP-adressen te geolocaliseren en informatie over hun bijbehorende locaties op te vragen. In deze tutorial ga ik ervan uit dat je Apache en PHP al hebt geïnstalleerd en bekend bent met Debian 11.
Stapsgewijze gids voor het implementeren van IP Geolocatie in PHP met behulp van PECL
Stap 1: PECL installeren
De eerste stap om IP2Location in PHP te implementeren is om PECL te installeren. Om PECL te installeren, moet je de PHP-ontwikkelingsheaders en -gereedschappen op je systeem hebben geïnstalleerd. Je kunt deze installeren via je pakketbeheer als je deze nog niet hebt ingesteld. Bijvoorbeeld, op Ubuntu of Debian, kun je de volgende opdracht uitvoeren:
sudo apt-get install php-dev php-pear
Stap 2: Installeer de IP2Location C-bibliotheek
Je hebt de IP2Location C-bibliotheek nodig om de PHP-module te compileren. Om dit te doen, voer je gewoon het volgende commando uit:
sudo apt-get install git
Dit zal de git-opdracht installeren. Voer vervolgens onderstaand commando uit om het IP2Location github-project te klonen:
sudo git clone https://github.com/chrislim2888/IP2Location-C-Library
Daarna, binnen de projectmap, voer het volgende commando uit:
autoreconf -i -v --force
./configure
make
make install
Het bovenstaande commando zal de IP2Location C-bibliotheek installeren.
Stap 3: Installeer de IP2Location-extensie
Nu je PECL hebt geïnstalleerd, kun je de IP2Location-extensie installeren. Om dit te doen, voer je gewoon het volgende commando uit:
sudo pecl install ip2location
Dit zal de IP2Location-extensie voor PHP downloaden en installeren.
Stap 4: Configureer PHP om de IP2Location-extensie te gebruiken
Nu je de IP2Location-extensie hebt geïnstalleerd, moet je PHP configureren om deze te gebruiken. Hiervoor moet je een regel toevoegen aan je php.ini
bestand.
Om je php.ini
bestand te vinden, kun je het volgende commando uitvoeren:
php -i | grep php.ini
Dit zal het pad naar uw php.ini
bestand opleveren. Zodra u het pad heeft, kunt u het bestand openen in uw teksteditor van keuze.
Voeg vervolgens de volgende regel toe aan uw php.ini
bestand:
extension=ip2location.so
Dit zal PHP instructeren om de IP2Location-extensie te laden.
Stap 5: Apache opnieuw starten
U moet de Apache server opnieuw starten om de lijst met PHP-modules te verversen. Dit kan door de onderstaande opdracht uit te voeren:
sudo service apache2 restart
Vervolgens kunt u de volgende opdracht invoeren om te controleren of de IP2Location-module succesvol is geïnstalleerd en geladen:
php -m | grep ip2location
U zou de IP2location moeten zien na het uitvoeren van de bovenstaande opdracht.
Stap 6: IP2Location Database downloaden
Voordat u IP2Location kunt gebruiken om de locatie van een IP-adres te identificeren, moet u de IP2Location database downloaden. Deze database bevat informatie over de geografische locatie van elk IP-adres.
U kunt de gratis database downloaden van de IP2Location LITE website. Er zijn verschillende versies van databases beschikbaar, dus zorg ervoor dat u de juiste kiest voor uw behoeften.
Stap 7: Schrijf uw PHP-code
Nu dat je de IP2Location-extensie hebt geïnstalleerd en de database hebt gedownload, ben je klaar om IP2Location in je PHP code te gebruiken. Hier is een voorbeeld:
// Laad de database
ip2location_open('path/to/database.bin');
Zodra je de database hebt geladen, kun je de IP2Location-klasse gebruiken om de locatie van een IP-adres te identificeren. Hier is een voorbeeld:
// Druk de locatiegegevens af
echo 'Country code: ' . ip2location_get_country_short(‘8.8.8.8’) . “\n”';
echo 'Country name: ' . ip2location_get_country_long(‘8.8.8.8’) . “\n”;
Je zult het onderstaande resultaat zien:
Voordelen en nadelen van het installeren van PECL voor geolocatie
PHP PECL is relatief eenvoudig te installeren in vergelijking met Apache-modules, aangezien het alleen de noodzakelijke PHP-ontwikkelingsheaders en -gereedschappen vereist. En het is flexibeler, omdat het niet gebonden is aan een specifieke webserver, het kan worden gebruikt op elke platform dat PHP ondersteunt.
Er zijn echter nadelen aan het gebruik van deze oplossing. Om PHP PECL te gebruiken, moet je enige kennis hebben van PHP, de Linux-commando’s en de basisprincipes van het pakketbouwproces. PHP PECL kan niet zo goed presteren als een Apache-module voor websites met veel verkeer, omdat het een extra verwerkinglaag toevoegt aan PHP.
Conclusie
Het is belangrijk om de voordelen en nadelen van elke geolocatie implementatie aanpak zorgvuldig te evalueren om te bepalen welke het beste bij je specifieke behoeften past. Factoren zoals je technische expertise, serverplatform en prestatievereisten moeten allemaal in overweging worden genomen bij het maken van een beslissing.
Source:
https://dzone.com/articles/implementing-ip-geolocation-in-php-using-the-pecl-install