Toutes les adresses IP ne permettent pas le même niveau de précision de géolocalisation, et pour un nombre non négligeable de plages d'adresses, le niveau du pays est réellement le maximum que l'on puisse honnêtement revendiquer, quel que soit le fournisseur qui effectue la recherche. Comprendre pourquoi, plutôt que de supposer qu'il s'agit d'une lacune que de meilleures données combleraient simplement, aide à fixer les bonnes attentes pour traiter ces résultats dans votre propre application.
Certains blocs d'adresses sont attribués à une organisation qui opère largement sur tout un pays sans subdivision régionale claire et cohérente dans la manière dont elle achemine ou attribue réellement le trafic en interne, ce qui signifie qu'il n'existe aucun signal plus fin fiable à communiquer, même en principe, et pas seulement un signal qui se trouve manquer dans un jeu de données donné. Certaines catégories de réseaux, dont certains services par satellite et certains grands fournisseurs centralisés, acheminent le trafic par un nombre comparativement restreint de points de sortie couvrant de très vastes zones géographiques, comme expliqué ailleurs, ce qui plafonne la précision que peut honnêtement atteindre toute géolocalisation de ce trafic, quelle que soit la qualité des données compilées pour tous les autres types de réseaux.
Les blocs d'adresses nouvellement attribués ou récemment réaffectés peuvent aussi manquer de données d'utilisation réelle suffisantes pour justifier autre chose qu'une confiance au niveau du pays, simplement parce que la géolocalisation des adresses IP au niveau de la ville dépend généralement de l'accumulation et de la corrélation de signaux d'utilisation réels au fil du temps, et qu'un bloc qui n'a pas été utilisé de manière active et stable assez longtemps sous son attribution actuelle n'a pas encore généré ce signal, quelle que soit par ailleurs la qualité de la méthodologie sous-jacente.
Dans chacun de ces cas, la bonne réponse est d'indiquer honnêtement une précision au niveau du pays plutôt que de fabriquer une ville plausible mais non étayée simplement pour remplir le champ. Une ville fausse présentée avec assurance est bien pire pour votre application qu'un résultat honnêtement grossier au niveau du pays, car une ville fausse mais plausible peut passer silencieusement à travers une logique qui la suppose fiable, provoquant en aval une erreur difficile à remonter jusqu'à sa source, alors qu'un résultat au niveau du pays signale au moins clairement sa propre limite et vous pousse vers un traitement prudent et adapté.
Si votre application dépend de la précision au niveau de la ville pour une part importante de sa logique, il vaut la peine de vérifier explicitement si le résultat renvoyé contient réellement un champ ville précis et renseigné, ou s'il se limite au pays et à la région, et de prévoir un comportement par défaut raisonnable pour le second cas plutôt que de supposer une valeur de ville absente. Nos recherches IPv4 et IPv6 renvoient exactement ce que les données sous-jacentes permettent honnêtement pour une adresse donnée, quel que soit le niveau de granularité, plutôt que de gonfler une supposition peu fiable dans un champ qu'elle ne peut pas étayer de façon fiable.
Une adresse dans un centre-ville bien cartographié ne vous apprend presque rien sur la façon dont votre système gère une route rurale, une frontière contestée ou une requête près des pôles. Testez délibérément les cas difficiles.
Tous les jeux de données contenant des informations de localisation apparemment publiques ne peuvent pas légalement être utilisés dans un produit payant. Ce sont souvent les conditions de licence, et non la disponibilité technique, qui fixent la véritable limite.
Lorsqu'une requête ne peut réellement pas être résolue de manière fiable, ne rien renvoyer est une meilleure réponse que renvoyer une supposition présentée comme un fait. Voici le raisonnement derrière ce choix.