根据ip地址查询归属地——python
凯西
发布于 云南 09-28 · 362浏览 2回复 7赞

        首先我在这里用到的是github上一位老哥的开源代码。非常感谢开源大佬。在这里简单介绍一下用法。

1.第一步骤还是安装

    pip install qqwry-py3

 

2.导入和实例化

    >>> from qqwry import QQwry

    >>> q = QQwry()

 

3.导入文件

    >>> q.load_file('qqwry.dat')

如果没有这个qqwry.dat的文件,可以使用下边这个命令将这个文件下载下来

    >>> from qqwry import updateQQwry

    >>> ret = updateQQwry(filename)

这样就是把这个文件下载了,就可以在本地使用这个文件查询IP的归属地了。

 

4.查询IP的归属地

    >>> q.lookup('8.8.8.8')

    ('美国', '加利福尼亚州圣克拉拉县山景市谷歌公司DNS服务器')

这样就是查询到这个8.8.8.8的ip来源是美国了。

下面做一点额外的说明。

 

首先是这个模块的特点是:

1.for Python 3.0+。

2.提供两套实现供选择。有一个查找速度更快,但加载慢、占用内存多。

3.在i3 3.6GHz,Python 3.6上查询速度达18.0万次/秒。

4.提供一个从纯真网络(cz88.net)更新qqwry.dat的小工具。

 

**

解释q.load_file(filename, loadindex=False)函数

 

加载qqwry.dat文件。成功返回True,失败返回False。

参数filename可以是qqwry.dat的文件名(str类型),也可以是bytes类型的文件内容。

当参数loadindex=False时(默认参数):

程序行为:把整个文件读入内存,从中搜索

加载速度:很快,0.004 秒

进程内存:较少,16.9 MB

查询速度:较慢,5.3 万次/秒

使用建议:适合桌面程序、大中小型网站

 

当参数loadindex=True时:

程序行为:把整个文件读入内存。额外加载索引,把索引读入更快的数据结构

加载速度:★★★非常慢,因为要额外加载索引,0.78 秒★★★

进程内存:较多,22.0 MB

查询速度:较快,18.0 万次/秒

使用建议:仅适合高负载服务器

 

 

解释q.lookup('8.8.8.8')函数

找到则返回一个含有两个字符串的元组,如:('国家', '省份')

没有找到结果,则返回一个None

 

 

这样就知道如何使用qqwry模块来查找IP归属地了。

凯西
浏览 362
7 收藏 1
相关推荐
最新评论 2
赞过的人 7
评论加载中...

暂无评论,快来评论吧!