2013-10-12 10 views
18

Sto cercando una buona API gratuita che mi restituisca almeno il paese dell'IP. Ho trovato un paio di quello che funzionerà ma sembrano inaffidabili. Il problema principale è che devo fare circa 50000-100000 richieste per un giorno.Buona API di geolocalizzazione per IP

C'è qualche buono script che posso installare sul mio server e usarlo al posto dell'API? Grazie

+1

Utilizzare i servizi di https://geoip-db.com IPv4 e IPv6 sono supportati. –

+0

IPLocate.io fornisce un'API gratuita: ['https://www.iplocate.io/api/lookup/8.8.8.8'](https://www.iplocate.io/api/lookup/8.8.8.8) - Disclaimer: eseguo questo servizio. – ttarik

+6

Puoi provare l'API di geolocalizzazione IP gratuita: https://geoipify.whoisxmlapi.com/ – user121196

risposta

13

Si può provare a utilizzare IPInfoDB come ho trovato utile.

L'API restituisce la posizione di un indirizzo IP (Paese, regione, città, codice postale , latitudine, longitudine) e il fuso orario associato in formato XML . Puoi trovare esempi di codice sotto con PHP, Javascript, Ruby, Python e ASP.


C'è qualche buona sceneggiatura che posso installare sul mio server e usarlo invece di API?

ASP esempio dallo stesso sito

<% 
    'Get visitor IP 
    Dim UserIPAddress 
    UserIPAddress = Request.ServerVariables("HTTP_X_FORWARDED_FOR") 
    If UserIPAddress = "" Then 
    UserIPAddress = Request.ServerVariables("REMOTE_ADDR") 
    End If 
%> 
<% 
    'Set API key 
    api_key = "<your_api_key>" 
%> 
<% 
    'Get info and print 
    myxml="http://api.ipinfodb.com/v3/ip-city/?key="&api_key&"&ip=" &UserIPAddress&"&format=xml" 
    set xml = server.CreateObject("MSXML2.DOMDocument.6.0") 
    xml.async = "false" 
    xml.resolveExternals = "false" 
    xml.setProperty "ServerHTTPRequest", true 
    xml.load(myxml) 
    response.write "<p><strong>First result</strong><br />" 
    for i=0 to 10 
     response.write xml.documentElement.childNodes(i).nodename & " : " 
     response.write xml.documentElement.childNodes(i).text & "<br/>" 
    NEXT 
    response.write "</p>" 
%> 

Verificate anche Maxmind

+0

Il collegamento a ipinfodb restituisce un 404, vedere https://ipdata.co siamo un servizio più recente con più datapoint. – Jonathan

4

È possibile checkout MaxMind per i database GeoIP: \ Offrono IP-to-geo rilevazione per diverso livello di granularità, es IP-to-country, IP-to-locality, ecc. È possibile utilizzarli tramite la loro API, oppure è possibile scaricare un intero database di mapping IP-to-geo.

Il modo più semplice ed economico sarebbe quello di acquistare il database del paese GeoIP, http://www.maxmind.com/en/country, che sarà possibile salvare come file localmente, il quale potrà quindi essere interrogato utilizzando qualsiasi pacchetto software gradisca il proprio linguaggio.

Ecco un esempio gemma in Ruby che legge i dati GeoIP: https://github.com/cjheath/geoip

+3

Questo non soddisfa il requisito "gratuito" del poster: [Tariffe] (https://www.maxmind.com/en/geoip2-precision-services). – 10basetom

+1

Hanno versioni gratuite. –

Problemi correlati