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=
, 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:
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
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:
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
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