banner
肥皂的小屋

肥皂的小屋

github
steam
bilibili
douban
tg_channel

Python3 - 用纯真ip数据库批量查询ip归属地

起因#

正在摸鱼写网站日志分析文章的时候发现需要批量使用纯真 ip 数据库来查询 ip 地址归属地 \

于是二层摸鱼先写这篇Python批量查询 ip 归属地的文章,可谓是摸鱼中的摸鱼,杠上开花

这篇文章同时归类于Python工具分享

纯真 IP 地址数据库介绍#

纯真 IP 数据库解析 qqwry.dat 库文件。 QQWry IP 数据库 纯真版收集了包括中国电信、中国移动、中国联通、长城宽带、聚友宽带等 ISP 的最新准确 IP 地址数据。IP 数据库每 5 天更新一次,需要定期更新最新的 IP 数据库。

软件长这个样子:

image

由于其经常更新,我找到了一个GitHub项目,每天自己扫描并同步最新的qqwry.dat

要获取最新的qqwry.dat点我即可下载 (挂梯子)

你也可以下载这个最新版重命名覆盖掉原版的就不用一直下载纯真数据库安装包了

Python 批量查询#

全面的库请参考文末第一篇参考文章qqwry-python3

这个作者写的工具,已经上传到了pypi,直接pip install qqwry-py3就可使用

~~ 当然我这个只是简单实现批量读取ip归属地,后面如果有其他想法会在这篇文章更新~~

~~ 最终版代码如下:~~

** 发现好像很难写的亚子,就先用成熟的 qqwry 库吧,后面有兴趣再写 (估计不会再写了) **

::quyin:1huaji::

批量从文本查询 ip 地址并输出结果代码如下:

# -*- coding: utf-8 -*-
'''
@author: soapffz
@fucntion: 使用纯真ip数据库qqwry.dat批量查询txt内ip的归属地
@time: 2019-06-28
'''

from qqwry import QQwry
from IPy import IP


def batch_query_and_print():
    q = QQwry()
    q.load_file('qqwry.dat')
    with open('ip.txt') as f:
        ip_list = f.read().splitlines()
        for read_content in ip_list:
            try:
                IP(read_content)
            except:
                print("有不符合规范的IP地址,请检查后重新运行")
                exit(0)
    address_list = [q.lookup(ip) for ip in ip_list]
    for i, j in zip(ip_list, address_list):
        query_results = i+" "+j[0]+" "+j[1]
        print(query_results)
        with open("query_results.txt", 'a', encoding='utf-8') as f:
            f.writelines(query_results+"\n")


if __name__ == "__main__":
    batch_query_and_print()

pip install分别安装qqwryIPy

将要查询的ip放到ip.txt并和qqwry.dat.py文件在同一个目录即可运行

效果如下:

image

参考文章:

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。