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

參考文章:

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。