Geocodifica un indirizzo IP?

Qualcuno sa di una API RESTful aperta che posso chiamare per geocodificare l’IP di un utente a latitudine e longitudine?

Idealmente, sarebbe qualcosa di simile: http://google.com/geocode_api/?IP=1.2.3.4 e restituirebbe latitudine e longitudine.

Un’altra API REST gratuita con informazioni accurate sulla città sarebbe http://freegeoip.net Le richieste sono abbastanza semplici. Useresti qualcosa del genere

 http://freegeoip.net/{format}/{ip_or_hostname} 

per geocodificare un indirizzo IP, in cui il formato può essere csv , xml o json . Il loro sito web ha tutti i dettagli.

[AGGIORNAMENTO:] FreeGeoIP.net non era disponibile in passato come servizio pubblico. Il software era, tuttavia, sempre open source ed è disponibile su Github . È abbastanza facile far funzionare l’installazione locale usando Docker, se hai bisogno di un servizio altamente affidabile o se il tuo caso d’uso supera la quota corrente di 15.000 richieste / ora.

Ecco una coppia con semplici chiamate …

Esempi di chiamate: –

Esempio di XML restituito (ipinfodb): –

  122.169.8.137 OK IN India 10 Haryana Kaul  29.85 76.6667 0 0 0  

Puoi utilizzare l’API di google: http://code.google.com/apis/ajax/documentation/#ClientLocation

modificare

Esempio:

   

Sul mio sito utilizzo http://ip-api.com/ per ottenere la posizione dall’indirizzo IP. Hanno dei bei limiti (fino a 150 richieste al minuto). Ipinfo.io è gratuito solo per meno di 1000 richieste al giorno .

Questo è l’output di esempio:

 ( [as] => AS8075 Microsoft Corporation [city] => Redmond [country] => United States [countryCode] => US [isp] => Microsoft bingbot [lat] => 47.674 [lon] => -122.1215 [org] => Microsoft bingbot [query] => 157.55.39.67 [region] => WA [regionName] => Washington [status] => success [timezone] => America/Los_Angeles [zip] => 98052 ) 

Questo è il codice PHP che puoi usare:

 $ip = $_SERVER['REMOTE_ADDR']; $result = json_decode(file_get_contents("http://ip-api.com/json/{$ip}")); //print_r ($result); echo "{$result->lat},{$result->lon}";//48.156,17.142 

Puoi trovare un database geografico GRATUITO sempre aggiornato qui http://www.maxmind.com/app/geolitecity

e puoi creare un nuovo servizio C # per usare questo Geo DB come http://www.maxmind.com/app/csharp

puoi provarlo online con il link sottostante http://www.maxmind.com/app/lookup_city