Come geolocalizzare un IP con PHP

In alcune circostanze, potrebbe essere utile sapere da quale luogo provengono i visitatori del tuo sito web. Per fini puramente statistici, può essere sufficiente analizzare i dati forniti da strumenti di analisi, come ad esempio Google Analytics, ma in alcuni casi più specifici potrebbe non bastare.
Un esempio pratico, potrebbe essere la necessità di bloccare il traffico proveniente da una determinata nazione o continente, per ragioni di sicurezza. Ma come è possibile farlo? Semplicemente attraverso l’indirizzo IP dell’utente, puoi ottenere numerose informazioni sulla sua geolocalizzazione e di conseguenza sulla sua provenienza. Curioso? Bene, passiamo alla pratica allora.
- Leggi l'articolo, ti bastano solo 1 minuto, 26 secondi
Sei di fretta? Scarica il PDF e consultalo quando vuoi!
GeoIP2 PHP API
Per raggiungere lo scopo, utilizzeremo un servizio di API PHP fornito da terze parti: GeoIP2 PHP API, basato sui database GeoLite2, ovvero database di geolocalizzazione IP gratuiti e aggiornati settimanalmente.
Per maggiori informazioni sulle API, dai un’occhiata a:
Mentre per saperne di più sui database utilizzati, dai un’occhiata a:
Ma come utilizzare le API?
Utilizzare le GeoIP2 PHP API
L’utilizzo è piuttosto semplice: andando infatti al link:
http://www.geoplugin.net/json.gp
puoi vedere un saggio del funzionamento della geolocalizzazione degli IP. Nello specifico, riceverai informazioni relative al tuo attuale IP pubblico, tra cui:
- Città
- Nazione
- Continente
- Coordinate (latitudine e longitudine)
e così via… Ovviamente, la precisione è indicativa e non va presa come esatta al 100%!
Ma allo stesso indirizzo è possibile ricevere informazioni relative ad uno specifico indirizzo IP, semplicemente specificandolo nella URL:
http://www.geoplugin.net/json.gp?ip=216.58.205.142
ed ecco un esempio della risposta JSON ricevuta:
{ "geoplugin_request":"216.58.205.142", "geoplugin_status":200, "geoplugin_delay":"1ms", "geoplugin_city":"Mountain View", "geoplugin_region":"California", "geoplugin_regionCode":"CA", "geoplugin_regionName":"California", "geoplugin_areaCode":"", "geoplugin_dmaCode":"807", "geoplugin_countryCode":"US", "geoplugin_countryName":"United States", "geoplugin_inEU":0, "geoplugin_euVATrate":false, "geoplugin_continentCode":"NA", "geoplugin_continentName":"North America", "geoplugin_latitude":"37.4056", "geoplugin_longitude":"-122.0775", "geoplugin_locationAccuracyRadius":"1000", "geoplugin_timezone":"America\/Los_Angeles", "geoplugin_currencyCode":"USD", "geoplugin_currencySymbol":"$", "geoplugin_currencySymbol_UTF8":"$", "geoplugin_currencyConverter":1 }
Comodo no? Ma non finisce qui!
Una classe PHP pronta all'uso
I precedenti riferimenti, danno tutte le informazioni necessarie per utilizzare al meglio le API di geolocalizzazione degli indirizzi IP, ma lo scopo di questa guida non è solo informativa, ma anche semplificare nel miglior modo possibile il tuo lavoro, fornendoti un esempio pratico di utilizzo ed una base di partenza completa e funzionante da cui prendere spunto.
Allo scopo, Code4Life ha sviluppato una classe PHP in grado di utilizzare ed elaborare i dati di geolocalizzazione degli IP, pronta ad essere utilizzata nei tuoi progetti. Come potresti volere di più?
Per utilizzarla, è sufficiente includere la classe nel tuo progetto e richiamarla come descritto nella documentazione.
Cosa aspetti? Inizia ad utilizzare la geolocalizzazione tramite IP per riuscire a proteggere al meglio il tuo sito web!