Qualsiasi API affidabile disponibile per determinare la città e il paese dell'utente dall'indirizzo IP

Heyy ragazzi

Volevo verificare se qualcuno conosce un'API affidabile che possiamo usare per determinare la città e il paese dell'utente dal suo indirizzo IP.

La mia ricerca su Google ha portto a http://ipinfodb.com/ip_location_api.php

Sembra perfetto ma la mia unica preoccupazione è l'affidabilità di questo servizio. Google ha qualcosa di simile. Se conosci altre API gratuite oa pagamento che aiutano a determinare la posizione dell'utente dal suo IP, faccelo sapere

Grazie

Ho usato http://www.hostip.info/ e l'ho trovato davvero buono.

MaxMind ha una versione lite dei loro database ip2country e ip2city: http://www.maxmind.com/app/geolitecity

http://www.maxmind.com/app/geolitecountry

Se non ti dispiace ospitare il database da solo, è gratis. I servizi a pagamento sono più accurati.

Forniscono anche servizi Web per l'interrogazione, ma non sono gratuiti: http://www.maxmind.com/app/web_services#country

Prendi in considerazione l'utilizzo di geoplugin , fornisce la maggior parte delle informazioni da un codice PHP a linea singola, ma richiede una connessione al server geoplugin.com per each richiesta (ed è gratuito).

Esempi:

Json: http://www.geoplugin.net/json.gp?ip=74.125.236.174

{ geoplugin_request: "74.125.236.174", geoplugin_status: 200, geoplugin_city: "Mountain View", geoplugin_region: "CA", geoplugin_areaCode: "650", geoplugin_dmaCode: "807", geoplugin_countryCode: "US", geoplugin_countryName: "United States", geoplugin_continentCode: "NA", geoplugin_latitude: "37.419201", geoplugin_longitude: "-122.057404", geoplugin_regionCode: "CA", geoplugin_regionName: "California", geoplugin_currencyCode: "USD", geoplugin_currencySymbol: "$", geoplugin_currencySymbol_UTF8: "$", geoplugin_currencyConverter: 1 } 

Xml: http://www.geoplugin.net/xml.gp?ip=74.125.236.174

 <geoPlugin> <script/> <geoplugin_request>74.125.236.174</geoplugin_request> <geoplugin_status>200</geoplugin_status> <geoplugin_city>Mountain View</geoplugin_city> <geoplugin_region>CA</geoplugin_region> <geoplugin_areaCode>650</geoplugin_areaCode> <geoplugin_dmaCode>807</geoplugin_dmaCode> <geoplugin_countryCode>US</geoplugin_countryCode> <geoplugin_countryName>United States</geoplugin_countryName> <geoplugin_continentCode>NA</geoplugin_continentCode> <geoplugin_latitude>37.419201</geoplugin_latitude> <geoplugin_longitude>-122.057404</geoplugin_longitude> <geoplugin_regionCode>CA</geoplugin_regionCode> <geoplugin_regionName>California</geoplugin_regionName> <geoplugin_currencyCode>USD</geoplugin_currencyCode> <geoplugin_currencySymbol>&#36;</geoplugin_currencySymbol> <geoplugin_currencySymbol_UTF8>$</geoplugin_currencySymbol_UTF8> <geoplugin_currencyConverter>1</geoplugin_currencyConverter> </geoPlugin> 

Altre opzioni

Ogni geolocalizzazione IP dipende dai record inviati dall'ISP. Questo non sarà mai completamente affidabile perché molti ISP presentano la sede del loro ufficio invece di posizioni fisiche delle loro sottoreti che potrebbero trovarsi in una città o in un paese diverso.

Google ha qualcosa di simile.

No, Google non fornisce un servizio simile a questo. (nota che la risposta qui che afferma che lo fornisce, non conduce da nessuna parte).

Qualsiasi altra API gratuita oa pagamento che aiuta a determinare la posizione dell'utente dal suo IP

Prima di tutto è difficile parlare di affidabilità di tale servizio. La maggior parte dei servizi si basa sull'ISP per get i propri dati e l'ISP non fornisce sempre dati affidabili. Inoltre, dato che presumo che ti interessi fondamentalmente sulla posizione dell'utente (e non su quale posizione appartenga il suo IP), l'utente può decidere di hide la sua posizione tramite VPN, Tor o altri anonimi.

In alcuni dei tuoi commenti, ho visto che per affidabilità si intende il tempo di attività del provider API. Se è così, allora consiglierei il GeoIP2 di MaxMind . Prima di tutto, ho visto questo sito per molto tempo, sono stati aggiornati abbastanza spesso (ultimo aggiornamento 1-aprile 2014), inoltre, se si ha così paura dei tempi di inattività – è ansible scaricare il loro database e non fare affidamento su di essi (anche sono gratuiti).

Un altro servizio che mi piace di solito è less conosciuto e opensource (si basa in parte sui dati di MaxMind). L'ho usato solo poche volte, quindi non posso dire che è tempo di attività, ma mi piace molto la loro API. È così semplice, che è difficile venire con più semplice:

 http://www.telize.com/geoip/46.19.37.108 

o come questo

 http://www.telize.com/geoip/2a02:2770::21a:4aff:feb3:2ee 

ti darò

 { "country":"Netherlands", "dma_code":"0", "timezone":"Europe\/Amsterdam", "area_code":"0", "ip":"46.19.37.108", "asn":"AS196752", "continent_code":"EU", "isp":"Tilaa VOF", "longitude":5.75, "latitude":52.5, "country_code":"NL", "country_code3":"NLD" } 

Penso che questi due servizi siano sufficienti per get informazioni normali per i tuoi visitatori. Ma una cosa importnte. Se hai davvero bisogno di sapere da where arrivano gli utenti – perché non chiedere loro con la geolocalizzazione html5 ? Ecco un buon esempio , ma puoi andare oltre (chiedigli se la posizione è corretta e dare loro la possibilità di cambiarla). So che nel tuo caso hai bisogno solo di Country / City, ma potrebbero esserlo altre persone ne avranno bisogno.


PS Nov 2015. Ora che telize.com costa denaro da utilizzare, ho trovato un altro servizio che è attualmente gratuito:

 https://freegeoip.net/json/45.79.8.237 https://freegeoip.net/json/2600:3c00::f03c:91ff:fe98:c0f5 

In un certo senso, non puoi conoscere in modo affidabile la posizione di un utente . Utilizzando i suggerimenti, le altre risposte fornite ti forniranno la geolocalizzazione di un IP, ma non c'è modo di sapere che l'indirizzo IP di New York USA non è accessibile tramite una VPN da qualcuno in viaggio d'affari a Londra, Regno Unito, o se qualcuno sta usando un servizio anonimo come Tor .