IP to Location usando Javascript

 function getip(json){ alert(json.ip); // alerts the ip address }   

Posso ottenere l’IP dell’utente con questo codice …

Voglio trovare la posizione di questo IP. Come posso?

Puoi inviare l’IP che ricevi a un servizio di geolocalizzazione online, come http://www.geoplugin.net/json.gp?ip=&jsoncallback= , quindi includendo il sorgente restituisce che eseguirà la funzione specificata in jsoncallback con le informazioni di geolocalizzazione.

In alternativa, potresti voler esaminare le funzionalità di geolocalizzazione di HTML5: qui puoi vedere una demo in azione. Il vantaggio di questo è che non è necessario effettuare richieste a server stranieri, ma potrebbe non funzionare su browser che non supportano HTML5.

Una comunità libera open source esegue il servizio IP di geolocalizzazione che gira sul database MaxMind è disponibile qui: http://freegeoip.net/

uso

 freegeoip.net/{format}/{ip_or_hostname} 

Esempio

 http://freegeoip.net/json/74.125.225.231 

Limitazione

10.000 query all’ora

Vorrei sottolineare che se si utilizza http://freegeoip.net/ , non è necessario fornire ad esso l’indirizzo IP della posizione del cliente. Prova solo questi:

1) http://freegeoip.net/xml/

2) http://freegeoip.net/json/

3) http://freegeoip.net/csv/

Tuttavia, non riesco a recuperare le informazioni con le chiamate AJAX, probabilmente a causa di alcuni criteri di origine incrociata. Apparentemente non hanno permesso l’accesso pubblico al loro sistema.

È abbastanza facile con un’API che mappa l’indirizzo IP nella posizione. Esegui lo snippet per ottenere città e paese per l’IP nella casella di input.

 $('.send').on('click', function(){ $.getJSON('https://ipapi.co/'+$('.ip').val()+'/json', function(data){ $('.city').text(data.city); $('.country').text(data.country); }); }); 
    

,

Nel caso in cui non fossi in grado di eseguire il codice sopra, ecco un modo semplice di usarlo con jquery:

 $.getJSON("http://www.geoplugin.net/json.gp?jsoncallback=?", function (data) { for (var i in data) { document.write('data["i"] = ' + i + '
'); } } );

Uno dei seguenti collegamenti dovrebbe occuparsi di questo:

http://ipinfodb.com/ip_location_api_json.php

http://www.adam-mcfarland.net/2009/11/19/simple-ip-geolocation-using-javascript-and-the-google-ajax-search-api/

Questi collegamenti hanno tutorial per ottenere la posizione degli utenti tramite Javascript. Tuttavia, lo fanno attraverso un’API a un servizio dati esterno. Se disponi di un sito con traffico estremamente elevato, potresti voler ospitare personalmente i dati (o ottenere un servizio API premium). Per ospitare tutto da soli, dovrai ospitare un database con IP Geolocation e utilizzare ajax per alimentare la posizione degli utenti in Javascript. Se questo è l’approccio che si desidera adottare, è ansible ottenere un database gratuito di informazioni IP di seguito:

http://www.ipinfodb.com/ip_database.php

Si prega di notare che questo metodo comporta la necessità di aggiornare periodicamente il database per rimanere accurato nella tracciabilità dei punti di accesso.

puoi usare ipinfodb dopo aver ottenuto la tua chiave API puoi interrogare per una posizione su un ip specifico come questo http://api.ipinfodb.com/v2/ip_query.php?key=" + apiKey + "&ip=" + ip + "&output=xml puoi quindi estrarre la posizione dalla risposta xml

Puoi utilizzare questo servizio web di geolocalizzazione IP gratuito di Google

aggiornare

il link è rotto, ho messo qui un altro link che include @NickSweeting nei commenti:

ip-api.com

e puoi ottenere i dati in formato json:

http://ip-api.com/docs/api:json

Un modo migliore è saltare l'”uomo medio” (ip)

 jQuery.get("http://ipinfo.io", function(response) { console.log(response.city); }, "jsonp"); 

Questo ti dà l’ IP , la città , il paese , ecc

  $.getJSON('//freegeoip.net/json/?callback=?', function(data) { console.log(JSON.stringify(data, null, 2)); }); 

È necessario un database che contenga l’indirizzo IP e la mapping della posizione. Oppure puoi utilizzare molti strumenti online per raggiungere questo objective, ad esempio: http://www.ipligence.com/geolocation

Google ottiene molti risultati sotto parole chiave: “Posizione IP”

Prova TUQ GEO IP API è gratuito e davvero pulito e dolce con il supporto di jsonp

http://tuq.in/tools/geo

http://tuq.in/tools/geo+stats

Un’opzione piuttosto economica sarebbe quella di utilizzare l’API ipdata.co , che è gratuita fino a 1500 richieste al giorno.

Questa risposta utilizza una chiave API ‘test’ che è molto limitata e ha il solo scopo di testare alcune chiamate. Registrati per la tua API Key gratuita e ricevi fino a 1500 richieste al giorno per lo sviluppo.

 $.get("https://api.ipdata.co?api-key=test", function (response) { $("#ip").html("IP: " + response.ip); $("#city").html(response.city + ", " + response.region); $("#response").html(JSON.stringify(response, null, 4)); }, "jsonp"); 
 

ipdata.co - IP geolocation API