在Python中追踪IP地址
为了我的编程入门课程的一个大学项目,我决定做一个小软件,可以追踪IP地址,并把它们漂亮地显示在一个图形界面上(用PyQt)。我知道这不是个大项目,但我还是挺喜欢这个想法的。
于是我在网上查了一下,发现了MaxMind的IP地址服务和他们提供的免费资源,还有一个叫pygeoip的工具,它是用来访问MaxMind的GeoIP数据库的API。听起来不错吧!
不过问题是,要查询他们的数据库,我得下载每个国家和城市的单独数据库。这就不太好了,因为这意味着最终用户还得下载额外的文件(几MB),才能查找一个IP地址。
所以我在想,还有没有其他方法可以做到这一点?我该如何追踪IP地址?如果可能的话,我需要追踪到城市级别。就像这个网站上的功能一样 aruljohn.com/track.pl
谢谢!
2 个回答
1
我有一个更好的主意。为什么不做一个非常简单的网页应用呢?这个网页应用可以用来查找信息,而你的PyQt客户端可以向这个网页发送请求。其实在这种情况下,你甚至不需要客户端。只要做一个网页,输入IP地址,然后显示出城市就可以了。
2
我更喜欢“pygeoip”,因为它可以让你在本地开发一个完整的解决方案。当然,你需要自己保存数据库。
如果你不想在本地保存数据库,那你就得依赖一个外部服务来查询IP的位置。这会让你的解决方案变得简单,但也会依赖这个服务。
你可以看看这个网站:ipinfodb.com
他们提供JSON和XML的接口,这些应该比较容易使用。
想了解更多信息,可以访问:http://ipinfo.info/html/geolocation_2.php