2008-11-08 5 views
19

Les adresses IP sont-elles affectées aux informations publiques des FAI? Comment les services de géo-IP obtiennent-ils ces informations et conservent-ils ces informations?Comment fonctionne la recherche géographique par IP?

Comment puis-je déterminer personnellement où une certaine adresse IP appartient sans utiliser l'un de ces services?

+2

La [carte IP xkcd] (http://xkcd.com/195/) pourrait vous intéresser. –

Répondre

36

Pour ce que ça vaut, j'ai travaillé à un niveau supérieur dans l'industrie des FAI pendant plus d'une décennie, donc j'ai une certaine expérience avec cela.

De grandes plages IP sont allouées au besoin par IANA à chacun des Regional Internet Registries.

Les régions ont généralement une taille continentale - les adresses IP sont et non affectées par pays.

Les RIR allouent à leur tour les adresses IP aux FAI, qui à leur tour les affectent aux utilisateurs finaux.

Chaque serveur RIR gère un serveur whois qui peut être interrogé pour savoir non seulement quel FAI a été affecté à un bloc réseau, mais dans quelle mesure l'utilisateur final et l'adresse de cet utilisateur final.

Notez que de nombreux FAI ne remplissent pas cette information pour chaque client. Par conséquent, si vous êtes un abonné résidentiel d'un service DSL, il est probable que les enregistrements Geo indiqueront l'adresse de votre FAI, et non votre propre adresse.

Les divers fournisseurs de géolocalisation travaillent principalement en exploitant ces enregistrements whois. Notez que la légalité de faire ainsi est quelque chose d'une zone grise - la déclaration de copyright de base de données de RIPE est here. L'IANA maintient également la zone racine pour le DNS, mais elle est complètement distincte de toutes les fonctions d'allocation IP. Il est très important de maintenir la distinction entre les opérations de noms de domaine et les adresses IP.

2

Attention, les données sont souvent lentes à mettre à jour et encore plus lentes à répliquer. Mon lieu de travail a changé de fournisseur d'accès Internet il y a plusieurs années et nous avons reçu un bloc d'adresses IP canadiennes (nous sommes basés aux États-Unis), Google a continué pendant des mois à nous donner google.ca comme moteur de recherche par défaut. Environ la moitié du temps mon adresse IP à la maison provient de ma ville, l'autre moitié d'une ville dans un autre état. Jason a raison de dire que le processus est le même, mais les mises à jour sont encore plus lentes et les données moins précises.

+0

Eh bien oui, lorsque vous descendez la pile du domaine, les choses deviennent de plus en plus lentes et prennent plus de temps à se propager ... –

+0

Il y a aussi des problèmes si votre FAI est domicilié dans un autre pays. Joel a écrit à ce sujet avec son hôte étant canadien. –

+0

Jason - c'est de la foutaise. Ce n'est pas "à quelle distance de la pile" vous êtes. Tout FAI peut effectuer une modification visible dans les données "whois" instantanément. Ce qui est lent, c'est l'exploration (probablement illégale) de ces données par les fournisseurs GeoLoc. – Alnitak

4

Il existe une variété de bibliothèques qui ont des tables de mappage ainsi que des services que vous pouvez incorporer dans votre code.

La chose la plus importante à comprendre est qu'il n'y a aucune relation directe entre une adresse IP et n'importe quelle partie du monde. Les adresses sont allouées en gros blocs à des organisations à peu près géographiques, qui allouent à leur tour des blocs plus petits, cela peut arriver à plusieurs niveaux pour n'importe quelle adresse IP donnée (Alnitak explique bien le processus).

Le fait est que les données WHOIS ne doivent pas nécessairement être exactes. Si j'ai un bloc d'adresse, je peux dire que c'est sur Mars. Et même si vous affinez l'emplacement de l'organisation finale (disons un très petit FAI en Alaska), l'utilisateur pourrait utiliser une connexion à partir d'Hawaï, ou le serveur pourrait héberger une société à partir de Guam.Donc, il y a toujours un élément de risque/estimation dans la mise en correspondance d'une adresse IP (ou d'un nom de domaine) avec un emplacement physique. Cela ne veut pas dire que vous ne devriez jamais le faire, il existe de nombreuses applications où l'information approximative ou imparfaite est très utile.

1

La réponse d'Alnitak est plutôt bonne. En note, si vous voulez utiliser un fichier .dll pour déterminer l'emplacement de l'utilisateur, vous pouvez essayer ce IPAddressExtension trouvé sur CodePlex. Il a une base de données interne des FAI à des endroits. Comme mentionné ci-dessus par Alnitak, chaque ISP a des blocs IP .. donc cette information est enterrée dans le fichier .dll :)

C'est vraiment facile à utiliser. Il suffit de référencer le fichier .dll, puis de créer une instance d'un objet System.Net.IpAddress! les extensions sont listées dessus.

Je dois également déclarer que je suis l'auteur de ce projet/produit codeplex.

S'il vous plaît vérifier :)

EDIT: Ajout d'informations sur moi d'être l'auteur de ce produit.

+3

Vous devez éditer votre réponse pour indiquer que vous êtes vous-même l'auteur de IPAddressExtension. Sinon, les gens peuvent penser que vous abusez des conditions d'utilisation du SO. – bzlm

4

Pour répondre à la question spécifique "comment ça marche": il y a beaucoup de travail manuel impliqué, et les bases de données sont en grande partie maintenues manuellement. Comme d'autres réponses le soulignent, il n'y a pas de corrélation réelle entre les plages d'IP et les pays, et encore moins les régions spécifiques. Récemment, le système de distribution d'espace d'adresses IP a été encore plus décentralisé, ce qui signifie que les petits fournisseurs privés peuvent acquérir des plages d'adresses IPv4 indépendamment de la région géographique. C'est la raison pour laquelle Google a fait appel à Urchin pour pouvoir utiliser ses services pour Google Analytics, ce qui fournit des informations précises sur les adresses IP et les régions géographiques.

Si vous ne voulez pas utiliser un service comme MaxMind (gratuit pour un usage personnel, et la base de données est ouverte dans une certaine mesure) ou Google Analytics (gratuit pour un usage personnel), il y a des bases de données gratuites (et donc légèrement désuètes) flottant autour, parfois comme des fichiers plats.

Questions connexes