2010-11-25 6 views
2

Für ein College-Projekt für meinen Kurs über Einführung in die Programmierung, entschied ich mich, eine kleine Software, die die IP-Adresse verfolgt und sie auf einer GUI (PyQt) setzt. Keine große Sache, ich weiß, aber immer noch mag ich die Idee.Verfolgen einer IP-Adresse in Python

So googelte ich herum und fand MaxMinds IP und ihr kostenloses Angebot und die pygeoip, die eine API für die MaxMind GeoIP-Datenbanken ist. Ziemlich cool, eh!

Aber der Nachteil ist, dass, um ihre Datenbank abzufragen, ich einzelne Datenbanken für die Landstadt herunterladen muss. Dies ist nicht gut, da ich den Endbenutzer zusätzliche Dateien (in MB) herunterladen muss, nur um eine IP-Adresse nachzuschlagen.

Also frage ich mich, gibt es eine andere Methode, dies zu tun? Wie verfolge ich IP-Adressen? Beachten Sie, dass ich sie, wenn möglich, auf Stadtniveau brauche. Etwas wie dieser Typ aruljohn.com/track.pl

Danke!

Antwort

2

Ich hätte "Pygeoip" bevorzugt, weil es Ihnen ermöglicht, eine vollständige Lösung lokal zu entwickeln. Natürlich müssen Sie die Datenbank behalten.

Wenn Sie die Datenbank nicht lokal aufbewahren möchten, müssen Sie auf einen externen Dienst angewiesen sein, um den Standort einer IP abzufragen. Dies hält Ihre Lösung klein, aber abhängig von diesem Service.

Für diese Besuche: ipinfodb.com

Sie bieten JSON und XML-APIs Schnittstelle, die ausreichend einfach sein sollte zu bauen.

Schauen Sie sich mehr Informationen unter: http://ipinfo.info/html/geolocation_2.php

+0

Das Problem mit einer lokalen Lösung ist, dass ich meine App innerhalb meiner Freunde verteilen möchte und ich wirklich nicht will, dass sie die Datenbanken herunterladen, nur um IP-Adressen nachzuschlagen. Ich hoffe, Sie verstehen meinen Standpunkt. Ich werde den Link überprüfen und vielleicht JSON dabei lernen;) Danke! – user225312

+0

@Brian: Yup, würde ich JSON API bevorzugen, aber um zu beginnen, können Sie XML-API verwenden, um zumindest die Gewässer zu testen. Schau, ob das für dich funktioniert. – pyfunc

+0

Aber Sie möchten, dass sie Ihre Anwendung herunterladen, möglicherweise zusammen mit Qt und Python ... :) – cababunga

1

ich noch bessere Idee haben. Warum machst du nicht eine sehr einfache Web-App, die das eigentliche Nachschlagen tun wird; und Sie PyQt-Client würde HTTP-Anfrage dazu machen. Oder vielleicht brauchen Sie in diesem Fall nicht einmal einen Kunden. Erstellen Sie einfach eine Webseite, um die IP-Adresse zu erhalten und die Stadt anzuzeigen.

+0

Ich möchte nicht einen Webbrowser einbeziehen. – user225312

+0

Dann machen Sie beide, Client und Server. BTW, Apache und Lighttpd haben Geolocation-Module. Sie müssen nur den Standort an Ihren Client zurückgeben. – cababunga