web-dev-qa-db-fra.com

Comment puis-je compiler une adresse IP dans la base de données de recherche de pays à rendre disponible gratuitement?

Comment puis-je compiler une base de données précise d'adresses IP et de leurs pays associés afin de la rendre disponible en téléchargement open source pour tout développeur Web qui souhaite effectuer une recherche IP géographique?

Il semble qu'une société appelée MaxMind détient le monopole de données IP géographiques , car la plupart des didacticiels en ligne que j'ai vus pour les recherches de pays basées sur des adresses IP commencent par suggérer un abonnement à Le service payant de MaxMind (ou leur version "Lite" gratuite et moins précise, qui nécessite un lien et est mise à jour une fois par mois).

Je ne suis pas complètement opposé à payer pour leur solution ou à utiliser la solution gratuite, mais le concept d'un équivalent open source précis que tout le monde peut utiliser sans restriction me plaît, et je pense que cela serait utile pour la communauté du développement Web.

Comment les données géographiques IP sont-elles collectées et dans quelle mesure est-il réaliste d'espérer conserver une version ouverte à jour?

5
Nick

Après avoir lu réponse de Christofian , j’ai fait quelques recherches et découvert que les cinq registre Internet régional membres ( APNIC , AFRINIC , ARIN , MÛR , et LACNIC ) conservent chacun une copie des plages d'adresses IP attribuées et les pays associés sur leurs serveurs FTP publics. Ces informations sont mises à jour quotidiennement et reproduites entre les cinq serveurs.

Par exemple, pour accéder à la dernière version des plages d'adresses IP et des pays pour les cinq régions stockées par le serveur FTP ARIN, vous devez utiliser les URL suivantes:

ftp://ftp.arin.net/pub/stats/ripencc/delegated-ripencc-latest
ftp://ftp.arin.net/pub/stats/lacnic/delegated-lacnic-latest
ftp://ftp.arin.net/pub/stats/arin/delegated-arin-latest
ftp://ftp.arin.net/pub/stats/apnic/delegated-apnic-latest
ftp://ftp.arin.net/pub/stats/afrinic/delegated-afrinic-latest

Les fichiers contiennent des enregistrements qui ressemblent à ceci:

ripencc|GB|ipv4|195.242.236.0|1024|20040916|assigned

qui correspond à:

registry|cc|type|start|value|date|status

Ceci est apparemment le format du format d'échange de statistiques du registre Internet régional (RIR) qui est expliqué sur le site de l'APNIC ici .

Cela devrait fournir suffisamment d'informations de base aux personnes intéressées pour constituer leurs propres bases de données actualisées par programme.

9
Nick

En regardant page wikipedia sur les adresses IP :

L'IANA (Internet Assigned Numbers Authority) gère globalement les allocations d'espace d'adresses IP et délègue cinq registres Internet régionaux (RIR) pour attribuer des blocs d'adresses IP aux registres Internet locaux (fournisseurs de services Internet) et à d'autres entités.

Je ne suis pas un expert, mais cela signifie que les adresses IP sont regroupées en "blocs", qui sont ensuite attribués à différents pays et à d'autres organisations. À partir de là, je parie que vous pourriez trouver un moyen d'identifier le bloc dont une adresse IP fait partie, puis d'utiliser ces informations pour déterminer le pays d'origine de cette adresse IP.

J'ai aussi trouvé un site appelé Nirsoft qui prétend avoir ne liste de quelques blocs donnés à différents pays . De plus, la FAQ de la base de données alternative que j0nes a posté mentionne également des blocs:

Les numéros IP répertoriés dans la base de données sont des plages et non des nombres uniques. Chaque ligne de la base de données représente une plage de numéros d'adresses IP (appelée bloc) représentant plusieurs centaines, milliers, voire centaines de milliers de numéros IP. . [emphase ajoutée]

Donc, je suppose que vous devrez identifier les blocs appartenant à différents emplacements, puis créer une base de données contenant tous ces blocs, afin de créer votre propre version open source de la base de données.

4
user6901

Il existe une version gratuite d'une base de données GeoIP disponible sur le site Software77 . Dans leur page FAQ ils disent:

Nous ne pouvons pas ajouter ou supprimer des IP de la base de données. Le processus que nous utilisons est automatisé et les adresses IP de la base de données sont telles que nous les obtenons des divers registres du monde entier. Si un registre ne répertorie pas une adresse IP, la seule façon de l'inclure dans notre base de données consiste à ce qu'il soit ajouté à la base de données.

Ils publient également des mises à jour, et au moins pour mon utilisation, les données étaient toujours correctes.

3
j0nes

J'ai compilé une petite base de données SQLite à partir des données trouvées à (octobre 2011): http://www.maxmind.com/app/geolite

4.9MB Le fichier 7Zip de la base de données peut être téléchargé à partir de: http://db.tt/OSXRYf

Il semblerait que l'extraction des données ARIN, comme l'a suggéré Nick, constitue une meilleure solution à long terme.

1
jeffreypriebe