Home > Articoli > Localizzazione IP, Nazioni, Città con MaxMind GeoIP

Localizzazione IP, Nazioni, Città con MaxMind GeoIP

Avevo già visto un’altra libreria che permette di avere queste informazioni attraverso una semplice API Java, ma quella di cui vi parlo oggi è ancora più potente, con un database facilmente aggiornabile e viene utilizzata in molti siti: MaxMind GeoIP Java API

MaxMind offre i propri servizi sia in maniera opensource che a pagamento, quindi la libreria è comunque abbastanza curata perchè è uno dei modi che hanno per pubblicizzare il loro prodotto a pagamento.

Prima di tutto bisogna scaricare la libreria all’indirizzo http://www.maxmind.com/download/geoip/api/java/. All’interno sono presenti i sorgenti che dobbiamo prima compilare e poi possiamo creare il jar da utilizzare nei nostri progetti

cd $HOME_GEOIP/source/com/maxmind/geoip/
javac *.java
jar cf maxmindgeoip.jar com/maxmind/geoip/*.class

Ora dobbiamo scaricare il database delle cittàquello delle nazioni. Questi database, free, vengono aggiornati una volta al mese nella versione lite, sul sito viene detto il primo di ogni mese (quanto sono diligenti :P).

All’interno della libreria sono poi presenti dei programmi di test, che ci permettono di vedere subito cosa è possibile fare con queste API. Il seguente codice restituisce ALCUNE informazioni sulla città a partire dall’IP

LookupService cl = new LookupService("/usr/local/share/GeoIP/GeoIPCity.dat",LookupService.GEOIP_MEMORY_CACHE );
Location l1 = cl.getLocation("213.52.50.8");
System.out.println("countryCode: " + l2.countryCode +
"\n countryName: " + l2.countryName +
"\n region: " + l2.region +
"\n regionName: " + regionName.regionNameByCode(l2.countryCode, l2.region) +
"\n city: " + l2.city +
"\n postalCode: " + l2.postalCode +
"\n latitude: " + l2.latitude +
"\n longitude: " + l2.longitude +
"\n distance: " + l2.distance(l1) +
"\n distance: " + l1.distance(l2) +
"\n dma code: " + l2.dma_code +
"\n area code: " + l2.area_code +
"\n timezone: " + timeZone.timeZoneByCountryAndRegion(l2.countryCode, l2.region));

mentre nel seguente modo è possibile sapere velocemente la nazione (e il relativo codice)

String dbfile = "GeoIP.dat";
LookupService cl = new LookupService(dbfile,LookupService.GEOIP_MEMORY_CACHE);
System.out.println(cl.getCountry("151.38.39.114").getCode());
System.out.println(cl.getCountry("151.38.39.114").getName());

Sul sito è presente una versione della libreria anche per C,C#,MS COM,Pascal,Perl,PHP,Python,Ruby,VB.NET…quando uno s’impegna s’impegna🙂

  1. Non c'è ancora nessun commento.
  1. No trackbacks yet.

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger cliccano Mi Piace per questo: