HOWTO: Mostrare città e nazione del visitatore in PHP
Ho avuto bisogno di mostrare automaticamente la città ed il paese di provenienza di un visitatore, per inserirli automaticamente nel nuovo Guestbook del sito.
IPInfoDB.com offre un servizio gratuito di geolocalizzazione, che permette, dato l’indirizzo IP di un visitatore, di mostrarne (nei limiti del possibile) alcuni dati, come Latitudine, Longitudine, Paese, Fuso Orario ecc. ecc.
Ovviamente questo servizio è gratuito, contiene imprecisioni dovute al fatto che spesso alcuni indirizzi IP vecchi vengono trasferiti ad altri provider, e finchè il database non viene aggiornato, c’è il rischio che vengano mostrati risultati sbagliati.
Nel complesso, comunque, sembra un servizio di geolocalizzazione piuttosto affidabile (e di certo potrà sbagliare di qualche chilometro la città di provenienza, ma non la Nazione 🙂 )
Prima di tutto, bisogna registrarsi sul loro sito, ed ottenere l’API key.
Creiamo una pagina PHP con questo codice:
<? // IP Address of the guest $ip = $_SERVER['REMOTE_ADDR']; //echo "<b>IP Address= $ip</b><br />"; $your_key = 'YOUR API KEY'; $url = "http://api.ipinfodb.com/v3/ip-city/?key=$your_key&ip=$ip&format=json"; $data = json_decode(file_get_contents($url)); echo $guest_ip = ucwords(strtolower($data->cityName.', '.$data->countryName)); echo "<br />"; echo $guest_ccode = $data->countryCode; ?>
Sostituiamo a YOUR API KEY, l’API KEY ottenuta durante la registrazione al sito.
Carichiamo il file php sul webserver, e lanciandolo otterremo qualcosa del tipo:
Napoli, Italy
IT
che, infatti, corrisponde alla provenienza del mio indirizzo IP. 🙂