Geolocalizzazione è una caratteristica importante per un sito web poiché consente alle aziende online di fornire contenuti mirati agli utenti potenziali in base alla loro posizione geografica. Utilizzando i dati di geolocalizzazione, il proprietario del sito può fornire contenuti localizzati, come notizie locali, previsioni del tempo ed eventi, e visualizzare il contenuto nella lingua madre. Può anche aiutare a prevenire frodi consentendo alle aziende di rilevare e bloccare attività sospette provenienti da determinate regioni geografiche. È uno strumento importante per i proprietari di siti web e sviluppatori per migliorare l’esperienza utente e prevenire frodi.
La geolocalizzazione può essere implementata in vari modi, come a livello di server web, livello di linguaggio di programmazione o attraverso l’uso di un SDK. Nel nostro articolo precedente, abbiamo dimostrato come installare la geolocalizzazione nel server Apache. In questo articolo, esplorerò un altro approccio installando la geolocalizzazione nel linguaggio PHP utilizzando l’installazione PECL. Per questa dimostrazione, utilizzeremo IP2Location, lo stesso provider di geolocalizzazione, in modo da poter comprendere come funziona la geolocalizzazione in ambienti diversi.
Panoramica di IP2Location
IP2Location è un database che contiene informazioni su indirizzi IP e le loro posizioni associate. Il database contiene una gamma di informazioni, tra cui il paese, la regione, la città, la latitudine, la longitudine, il fuso orario, il codice postale, il prefisso dell’area, le informazioni su dispositivi mobili, il tipo di utilizzo e molto altro dell’indirizzo IP.
Per utilizzare IP2Location, è necessario ottenere una copia del database e caricarlo nel tuo applicativo. Una volta caricato il database, puoi utilizzarlo per geolocalizzare gli indirizzi IP e recuperare informazioni sulle loro posizioni associate.
Nota: Versioni diverse dei database offrono diversa granularità delle informazioni sulla posizione. Devi ottenere quella giusta per la tua implementazione.
Panoramica sull’installazione di PECL
PECL (PHP Extension Community Library) è un repository di PHP estensioni che ti consentono di aggiungere funzionalità aggiuntive al tuo applicativo PHP. L’estensione IP2Location è una delle estensioni disponibili in PECL e ti permette di utilizzare IP2Location nel tuo applicativo PHP.
Per utilizzare l’estensione IP2Location, è necessario installarla sul tuo server utilizzando PECL. Una volta installata l’estensione, puoi utilizzarla nel tuo codice PHP per geolocalizzare gli indirizzi IP e recuperare informazioni sulle loro posizioni associate. In questo tutorial, suppongo che tu abbia già installato Apache e PHP e che tu sia familiare con Debian 11.
Guida passo-passo per implementare la geolocalizzazione IP in PHP utilizzando PECL
Passo 1: Installare PECL
Il primo passo per implementare IP2Location in PHP è installare PECL. Per installare PECL, è necessario avere i header e gli strumenti di sviluppo PHP installati nel tuo sistema. Puoi installare questi utilizzando il tuo gestore di pacchetti se non li hai già configurati. Ad esempio, su Ubuntu o Debian, puoi eseguire il seguente comando:
sudo apt-get install php-dev php-pear
Passo 2: Installare la Libreria C IP2Location
È necessaria la Libreria C IP2Location per compilare il modulo PHP. Per farlo, eseguire semplicemente il seguente comando:
sudo apt-get install git
Questo installerà il comando git. Quindi, eseguire il comando seguente per clonare il progetto IP2Location di GitHub:
sudo git clone https://github.com/chrislim2888/IP2Location-C-Library
Quindi, all’interno della cartella del progetto, eseguire il seguente comando:
autoreconf -i -v --force
./configure
make
make install
Il comando sopra installerà la Libreria C IP2Location.
Passo 3: Installare l’Estensione IP2Location
Ora che hai installato PECL, puoi installare l’estensione IP2Location. Per farlo, eseguire semplicemente il seguente comando:
sudo pecl install ip2location
Questo scaricherà e installerà l’estensione IP2Location per PHP.
Passo 4: Configurare PHP per Usare l’Estensione IP2Location
Ora che hai installato l’estensione IP2Location, devi configurare PHP per usarla. Per fare ciò, devi aggiungere una riga al tuo file php.ini
.
Per trovare il tuo file php.ini
, puoi eseguire il seguente comando:
php -i | grep php.ini
Questo genererà il percorso al tuo file php.ini
. Una volta ottenuto il percorso, puoi aprire il file nel tuo editor di testo preferito.
Successivamente, aggiungi la seguente riga al tuo file php.ini
:
extension=ip2location.so
Questo suggerirà al PHP di caricare l’estensione IP2Location.
Passo 5: Riavvia Apache
Devi riavviare il server Apache per aggiornare l’elenco dei moduli PHP. Per farlo, esegui il comando seguente:
sudo service apache2 restart
Quindi puoi inserire il seguente comando per verificare se il modulo IP2Location è stato installato e caricato correttamente:
php -m | grep ip2location
Dovresti notare IP2location dopo aver eseguito il comando precedente.
Passo 6: Scarica il Database IP2Location
Prima di poter utilizzare IP2Location per identificare la posizione di un indirizzo IP, dovrai scaricare il database IP2Location. Questo database contiene informazioni sulla posizione geografica di ogni indirizzo IP.
Puoi scaricare il database gratuito dal sito web IP2Location LITE. Sono disponibili diverse versioni di database, quindi assicurati di scegliere quella appropriata alle tue esigenze.
Passo 7: Scrivi il tuo Codice PHP
Ora che hai installato l’estensione IP2Location e scaricato il database, sei pronto per iniziare a utilizzare IP2Location nel tuo codice PHP. Ecco un esempio:
// Carica il database
ip2location_open('path/to/database.bin');
Una volta caricato il database, puoi utilizzare la classe IP2Location per identificare la posizione di un indirizzo IP. Ecco un esempio:
// Stampa le informazioni sulla posizione
echo 'Country code: ' . ip2location_get_country_short(‘8.8.8.8’) . “\n”';
echo 'Country name: ' . ip2location_get_country_long(‘8.8.8.8’) . “\n”;
Vedrai il risultato seguente:
Vantaggi e svantaggi dell’installazione di PECL per la geolocalizzazione
L’installazione di PHP PECL è relativamente semplice rispetto ai moduli Apache, poiché richiede solo l’installazione dei necessari header di sviluppo PHP e degli strumenti. Inoltre, è più flessibile poiché non è legato a un server web specifico, può essere utilizzato su qualsiasi piattaforma che supporta PHP.
Tuttavia, ci sono svantaggi nell’utilizzo di questa soluzione. Per utilizzare PHP PECL, è necessario avere alcune conoscenze di PHP, del comando Linux e dei fondamenti del processo di costruzione del pacchetto. PHP PECL potrebbe non funzionare altrettanto bene come un modulo Apache per siti web ad alto traffico, poiché aggiunge un ulteriore livello di elaborazione a PHP.
Conclusione
È importante valutare attentamente i pro e i contro di ogni approccio di implementazione della geolocalizzazione per determinare quale si adatti meglio alle tue esigenze specifiche. Fattori come la tua esperienza tecnica, la piattaforma del server e i requisiti di prestazioni dovrebbero essere tutti considerati nel prendere una decisione.
Source:
https://dzone.com/articles/implementing-ip-geolocation-in-php-using-the-pecl-install