Guide de localisation IP en JavaScript
Récupérez la localisation d’une adresse IP depuis un navigateur ou Node.js.
Rechercher une adresse IP en JavaScript
La requête accepte une seule adresse IPv4 ou IPv6 et demande du JSON. Remplacez l’adresse de l’exemple par celle que vous souhaitez examiner.
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);Exécutez le code dans un navigateur moderne ou dans Node.js avec fetch et AbortSignal.timeout. Les requêtes du navigateur identifient l’adresse que vous fournissez ; le point d’accès pour sa propre IP identifie la connexion du navigateur.
Lire les champs de localisation et de réseau
location.country et location.country_code indiquent le pays approximatif. location.city peut être vide ou imprécis. isp.asn identifie le réseau, qui peut différer de la personne ou de l’entreprise utilisant l’adresse.
Pour obtenir l’adresse à l’origine de la requête, appelez https://api.ipquery.io/?format=json. Une requête envoyée par un serveur renvoie l’IP avec laquelle celui-ci se connecte ; une requête du navigateur renvoie l’adresse visible de sa connexion.
Utiliser IPQuery dans Dashy
Le widget Public IP de Dashy prend en charge IPQuery sans clé API. Ajoutez cette entrée à la liste widgets de l’une de vos sections Dashy :
- type: public-ip
options:
provider: ipqueryLorsque les paramètres de proxy de Dashy sont désactivés, le navigateur envoie la requête et le widget affiche l’IP publique ainsi que la localisation approximative de cette connexion. Définir useProxy: true au premier niveau du widget, ou activer appConfig.widgetsAlwaysUseProxy, fait passer la requête par le serveur Dashy et affiche alors l’IP publique du serveur. Définir useProxy: false au premier niveau du widget ne remplace pas le paramètre global du tableau de bord.
Le widget utilise le point d’accès d’IPQuery pour sa propre IP. Pour examiner une autre adresse, utilisez la requête JavaScript portant sur une seule IP ci-dessus.
Options du widget Public IP de DashyPrécision et sécurité
La géolocalisation IP est une estimation de la localisation du réseau, pas de celle d’un appareil. Les VPN, proxies, réseaux mobiles et passerelles des opérateurs peuvent situer l’adresse loin de l’utilisateur. Traitez les valeurs manquantes comme inconnues plutôt que de les remplacer par une supposition.
Si votre application lit X-Forwarded-For, ne lui faites confiance que s’il est fourni par un proxy que vous contrôlez. Les en-têtes fournis par le client peuvent être falsifiés. Validez les adresses avant d’effectuer les recherches et traitez les délais d’attente et les erreurs HTTP séparément d’un résultat réussi.
Référence de l’API