Guida alla localizzazione IP in JavaScript
Recupera la posizione di un indirizzo IP da un browser o da Node.js.
Cercare un indirizzo IP in JavaScript
La richiesta accetta un indirizzo IPv4 o IPv6 e richiede JSON. Sostituisci l’indirizzo di esempio con quello da esaminare.
const ip = '8.8.8.8'; // Replace with an IPv4 or IPv6 address.
const response = await fetch(
'https://api.ipquery.io/' + encodeURIComponent(ip) + '?format=json',
{ signal: AbortSignal.timeout(8000) }
);
if (!response.ok) throw new Error('IPQuery returned HTTP ' + response.status);
const data = await response.json();
if (data.ip !== ip || !data.location || !data.isp) {
throw new Error('Unexpected IPQuery response');
}
console.log(data.location.country, data.location.city, data.isp.asn);Esegui il codice in un browser moderno o in Node.js con fetch e AbortSignal.timeout. Le richieste dal browser identificano l’indirizzo fornito; l’endpoint per il proprio IP identifica la connessione del browser.
Leggere i campi di posizione e di rete
location.country e location.country_code identificano il paese approssimativo. location.city può essere vuoto o impreciso. isp.asn identifica la rete, che può differire dalla persona o dall’azienda che utilizza l’indirizzo.
Per ottenere l’indirizzo da cui proviene la richiesta, chiama https://api.ipquery.io/?format=json. Una richiesta dal server restituisce l’IP con cui il server si connette; una richiesta dal browser restituisce l’indirizzo visibile della sua connessione.
Usare IPQuery in Dashy
Il widget Public IP di Dashy supporta IPQuery senza una chiave API. Aggiungi questa voce all’elenco widgets di una delle sezioni di Dashy:
- type: public-ip
options:
provider: ipqueryCon le impostazioni proxy di Dashy disattivate, il browser invia la richiesta e il widget mostra l’IP pubblico e la posizione approssimativa di quella connessione. Impostare useProxy: true al livello principale del widget o abilitare appConfig.widgetsAlwaysUseProxy fa passare la richiesta attraverso il server di Dashy e mostra invece l’IP pubblico del server. Impostare useProxy: false al livello principale del widget non prevale sull’impostazione globale della dashboard.
Il widget usa l’endpoint di IPQuery per il proprio IP. Per esaminare un altro indirizzo, usa la richiesta JavaScript per un singolo IP riportata sopra.
Opzioni del widget Public IP di DashyPrecisione e sicurezza
La geolocalizzazione IP è una stima della posizione della rete, non di un dispositivo. VPN, proxy, reti mobili e gateway degli operatori possono collocare l’indirizzo lontano dall’utente. Tratta i valori mancanti come sconosciuti invece di completarli con una supposizione.
Se l’applicazione legge X-Forwarded-For, consideralo attendibile solo quando è fornito da un proxy sotto il tuo controllo. Gli header forniti dal client possono essere falsificati. Valida gli indirizzi prima di effettuare le richieste e gestisci timeout ed errori HTTP separatamente da un risultato riuscito.
Riferimento dell’API