纯真IP网站申请免费离线应用步骤
1.纯真IP网站申请免费离线应用步骤
官方地址 纯真社区版IP库 - 纯真网络
注册账号之后,提交申请。 等待通过即可
个人开发使用可以查到大部分的 IP
2. Python 读取纯真离线 IP 库示例
拿到纯真社区版离线库(qqwry.dat)之后,最省事的方式是使用qqwry这个第三方库,它封装了 dat 文件的二进制解析逻辑,直接传入 IP 就能返回国家、省份、城市和运营商信息。
2.1 安装依赖
pip install qqwry2.2 文件路径说明
qqwry.dat是纯真社区版离线库文件,从纯真官网申请通过后下载得到,通常是一个压缩包,解压后即可看到该文件。- 建议把 dat 文件放在项目根目录下的
data目录中,例如./data/qqwry.dat,避免使用绝对路径导致换机器后无法运行。 - 代码中推荐用
os.path或pathlib拼接路径,保证在 Windows 和 Linux 下都能正确读取。 - dat 文件会定期更新,替换文件后无需改动代码,重新运行即可生效。
2.3 完整示例代码
import os from qqwry import QQwry dat 文件路径:项目根目录下的 data/qqwry.dat BASE_DIR = os.path.dirname(os.path.abspath(file)) DAT_PATH = os.path.join(BASE_DIR, "data", "qqwry.dat") 加载离线库,load_file 返回 True 表示加载成功 q = QQwry() if not q.load_file(DAT_PATH): raise RuntimeError("qqwry.dat 加载失败,请检查文件路径是否正确") 待查询的 IP 列表 ips = ["114.114.114.114", "8.8.8.8", "223.5.5.5"] for ip in ips: # lookup 返回 (国家/地区, 运营商) 二元组,查询失败时返回 None result = q.lookup(ip) if result is None: print(f"{ip} -> 未查询到结果") continue country, area = result print(f"{ip} -> {country} {area}") 输出示例: 114.114.114.114 -> 江苏省南京市 南京信风网络科技有限公司GreatbitDNS服务器 8.8.8.8 -> 美国 加利福尼亚州圣克拉拉县山景市谷歌公司DNS服务器 223.5.5.5 -> 浙江省杭州市 阿里云2.4 常见问题
- 加载失败:优先检查路径是否存在、文件名是否为
qqwry.dat(注意大小写),以及文件是否完整解压。 - 查询结果为 None:说明该 IP 不在库中,或传入的 IP 格式不合法,建议先用
ipaddress模块做一次校验。 - 结果不够精确:社区版库的精度有限,部分 IP 只能定位到省份或运营商,商业场景建议使用官方商业版 API。
- 批量查询性能:dat 文件加载一次后常驻内存,循环调用
lookup即可,不要每次查询都重新load_file。