2010-11-25 5 views
2

Pour un projet collégial de mon cours d'introduction à la programmation, j'ai décidé de créer un petit logiciel qui retrace l'adresse IP et les place bien sur une interface graphique (PyQt). Pas un gros problème, je sais, mais j'aime toujours l'idée.Traçage d'une adresse IP en Python

J'ai donc fait un tour d'horizon et trouvé l'adresse IP de MaxMind ainsi que son offre gratuite et le pygeoip, qui est une API pour les bases de données MaxMind GeoIP. Assez cool, hein!

Mais l'inconvénient est que pour interroger leur base de données, je dois télécharger des bases de données individuelles pour la ville de pays. Ce n'est pas une bonne chose car je dois faire en sorte que l'utilisateur final télécharge des fichiers supplémentaires (en Mo) juste pour rechercher une adresse IP.

Je me demande donc s'il existe une autre méthode pour cela? Comment puis-je suivre les adresses IP? Notez que j'ai besoin d'eux jusqu'au niveau de la ville, si possible. Quelque chose comme ce type aruljohn.com/track.pl

Merci!

Répondre

2

J'aurais préféré "pygeoip", car cela vous permet de développer localement une solution complète. Bien sûr, vous devrez conserver la base de données.

Si vous ne souhaitez pas conserver la base de données localement, vous devrez dépendre d'un service externe pour rechercher l'emplacement d'une adresse IP. Cela gardera votre solution petite mais dépendante de ce service.

Pour ce Vérifions: ipinfodb.com

Ils fournissent une interface JSON et les API XML qui devrait être suffisamment facile à construire.

Vérifiez plus d'informations sur: http://ipinfo.info/html/geolocation_2.php

+0

Le problème avec une solution locale est que je voudrais distribuer mon application dans mes amis et je ne veux vraiment pas qu'ils téléchargent les bases de données juste pour rechercher des adresses IP. J'espère que vous comprenez mon point de vue. Je vais vérifier le lien et peut-être apprendre JSON dans le processus;) Merci! – user225312

+0

@Brian: Oui, je préférerais API JSON mais pour commencer, vous pouvez utiliser l'API XML pour au moins tester les eaux. Voir, si cela fonctionne pour vous. – pyfunc

+0

Mais vous voulez qu'ils téléchargent votre application, éventuellement avec Qt et Python ... :) – cababunga

1

J'ai même meilleure idée. Pourquoi ne faites-vous pas une application web très simple, qui fera la recherche réelle; et vous client PyQt ferait une requête HTTP à cela. Ou peut-être que dans ce cas vous n'avez même pas besoin d'un client. Il suffit de créer une page Web pour obtenir l'adresse IP et afficher la ville.

+0

Je ne veux pas impliquer un navigateur web. – user225312

+0

Ensuite, faites les deux, client et serveur. BTW, à la fois Apache et Lighttpd ont des modules de géolocalisation. Vous devrez simplement renvoyer l'emplacement à votre client. – cababunga