Watch-IP

Géolocalisation IP contre position de l'appareil via le navigateur

L'API Geolocation de l'appareil côté navigateur (navigator.geolocation) demande la permission de l'utilisateur et peut renvoyer une position précise mesurée par l'appareil ; la géolocalisation IP ne nécessite aucune permission et fonctionne à chaque requête, mais elle ne fait qu'estimer la position à partir de l'adresse réseau de la connexion. Ces deux approches répondent à des problèmes différents et ne sont pas interchangeables.

Permission et source

navigator.geolocation.getCurrentPosition() (l'API Geolocation du W3C, implémentée par tous les grands navigateurs) nécessite une demande de permission explicite par origine et, sur les navigateurs modernes, un contexte sécurisé (HTTPS). Une fois accordée, elle peut utiliser le GPS, le positionnement Wi-Fi, la triangulation par antennes relais, ou l'IP en repli, selon ce dont dispose l'appareil. La géolocalisation IP ne nécessite aucune demande de permission ni aucune coopération de l'appareil — une API comme GET /v1/geo la lit directement depuis la requête entrante — mais elle ne dispose jamais que de l'adresse réseau pour travailler.

Précision

Une position d'appareil accordée inclut généralement un rayon de précision explicite en mètres, et sur un téléphone avec GPS et un ciel dégagé, elle peut être précise à quelques mètres près. La géolocalisation IP résout vers une plage réseau, pas un appareil — les résultats au niveau pays sont généralement fiables, les résultats au niveau ville sont une véritable estimation, et ni Watch-IP ni aucun fournisseur ne renvoie de chiffre de précision au mètre près, car les données sous-jacentes ne sont pas aussi précises. Consultez la page sur la précision pour une analyse plus complète de l'incertitude au niveau ville.

États d'échec

La géolocalisation par l'appareil peut échouer ou être refusée : l'utilisateur peut décliner la demande de permission, le navigateur peut être configuré pour la bloquer, une machine de bureau peut ne disposer d'aucun matériel de localisation pertinent, ou la requête peut expirer. Traitez PERMISSION_DENIED, POSITION_UNAVAILABLE et TIMEOUT (les codes d'erreur propres à l'API) comme des résultats distincts et attendus, pas comme des exceptions. La géolocalisation IP échoue différemment — un champ résolvable peut simplement valoir null ou, pour une recherche par IP fournie, found: false — et elle n'affiche jamais de demande de permission à l'utilisateur.

Choisir entre les deux

Utilisez la géolocalisation par l'appareil lorsque vous avez besoin de la position réelle de l'utilisateur et que vous pouvez justifier de lui demander la permission — une carte, un localisateur de magasins, ou une navigation étape par étape. Utilisez la géolocalisation IP comme valeur par défaut à faible friction : préremplir un pays ou une devise, orienter des analyses, ou suggérer (jamais imposer) une langue avant ou à la place d'une demande de permission. Un schéma courant consiste à utiliser la géolocalisation IP comme valeur par défaut sans permission, et à proposer la géolocalisation par l'appareil comme une amélioration explicite, déclenchée par l'utilisateur, pour les tâches qui nécessitent réellement de la précision.

Ce que cet article n'affirme pas

Il s'agit d'une comparaison générale entre deux mécanismes différents du navigateur, pas d'une affirmation selon laquelle Watch-IP implémenterait ou envelopperait l'API Geolocation de l'appareil — ce n'est pas le cas. GET /v1/geo repose uniquement sur l'IP ; si votre application a aussi besoin de la géolocalisation par l'appareil, appelez directement l'API du navigateur et traitez les deux résultats indépendamment plutôt que d'essayer de les réconcilier.

Sources

Rédigé par l'équipe éditoriale de Watch-IP, le 6 septembre 2026. Relu par rapport à apps/web/lib/cf.ts et apps/api/src/routes/geo.ts.

Pages associées