跳到主要内容
项目档案内容型项目

sapics/ip-location-db:多源 IP 地理位置数据库(CSV/MMDB)下载与使用指南

本项目提供基于 ASN、GeoFeed、DB-IP 等多源数据的 IP 地理位置数据库,涵盖国家与城市精度,支持 CSV 与 MMDB 格式,每日/月更新,CC0/CC BY 许可。适用于网络安全、内容本地化等场景。查看详细数据来源、下载链接与使用说明。

2,194JavaScriptStar 于 2026年1月6日2026年9月19日 更新

AI 总结

多源 IP 地理位置数据库集合,提供国家/城市精度 CSV 与 MMDB 格式数据,每日更新,CC0 许可,适用于网络分析、内容本地化等场景。

中文项目介绍

本项目是一个多源 IP 地理位置数据库集合,旨在提供准确、高频更新的 IP 到地理位置的映射数据。 它整合了 ASN、GeoFeed、Whois、iptoasn.com、db-ip lite 和 GeoLite2 等多个权威数据源,通过优先级合并策略生成一致的数据集。 数据库分为国家精度(如 asn-country)和城市精度(如 dbip-city)两个层级,均以 CSV(含 IP 地址和数值两种表示)和 MMDB 两种格式发布,满足不同应用场景的需求。 国家级别数据每日更新,采用 CC0 许可证;城市级别数据每月更新,采用 CC BY 4.0 许可证。用户可通过 npm 安装或从 CDN 直接下载使用。

详细信息与使用说明

1. 项目定位与用途

ip-location-db 是一个提供 IP 地址到地理位置映射数据的开源项目。它并非一个独立的应用程序或库,而是一个高质量、多源融合的地理位置数据库发布集合。项目核心产出是结构化的数据文件(CSV 和 MMDB 格式),涵盖国家(country)、城市(city)和自治系统号(ASN)三种类型,旨在为需要 IP 地理定位功能的各类系统提供可靠的数据基础。其定位是成为开发者获取 IP 地理信息时的首选数据源之一。

2. 解决的问题

本项目主要解决 IP 地理定位数据中的准确性、时效性和一致性问题。单一数据源可能存在覆盖不全、更新滞后或错误。通过融合 ASN、GeoFeed、Whois 等多个权威来源,并采用明确的优先级合并策略(如 GeoFeed > Whois > ASN),项目提升了数据的完整性和准确性。同时,每日或每月的更新频率确保了数据能反映互联网布局的最新变化。提供 CSV 和 MMDB 两种格式,解决了不同技术栈和性能需求的兼容性问题。

3. 适用场景

该数据库适用于任何需要根据 IP 地址推断地理信息的场景。典型用途包括:网络安全分析,用于识别攻击来源或异常登录的地理位置;网站内容本地化,根据访客 IP 展示对应的语言、货币或区域内容;网络性能监控,分析用户或服务器 IP 的全球分布以优化架构;合规与审计,检查用户访问是否符合特定地区的法律法规或服务限制。此外,也可用于学术研究、市场分析或日志分析等需要地理维度的数据处理任务。

4. 安装方式

项目本身不提供命令行工具或库的直接安装,而是以数据文件的形式分发。用户有两种主要获取方式:一是通过 npm 安装对应的数据包,例如执行 `npm install @ip-location-db/asn-country` 获取国家级别 CSV 数据,或 `npm install @ip-location-db/asn-country-mmdb` 获取 MMDB 格式数据。二是直接从 jsDelivr 或 unpkg 等 CDN 下载编译好的 CSV 或 MMDB 文件,具体下载链接可在各子模块(如 asn-country、dbip-city)的 README 文件中的下载表格里找到。

5. 使用方式

使用方式取决于所选择的数据格式。对于 MMDB 格式文件(.mmdb),需使用兼容 MaxMind DB 格式的库(如 Node.js 的 `maxmind` 或 `geoip-lite`)打开数据库文件,然后传入 IP 地址查询,即可获取对应的 `country_code` 等字段信息。对于 CSV 格式文件,需自行编写解析逻辑:读取 `ip_range_start` 和 `ip_range_end` 字段,判断给定 IP 是否落在该 inclusive 范围内,若在则其对应的 `country_code` 即为该 IP 的国家代码。城市级别数据(dbip-city)的 CSV 文件还额外包含 `city`、`state`、`latitude`、`longitude` 等字段。

6. 补充说明与实现特点

项目在实现上具有几个关键特点:数据来源方面,asn-country 系列基于五大 RIR(AFRINIC、APNIC、ARIN、LACNIC、RIPE NCC)的 IP-ASN-Country 数据库合并而成;geo-asn-country 系列则进一步融合了 GeoFeed 数据;dbip-city 系列源自 DB-IP Lite。更新策略上,国家精度数据每日更新,城市精度数据每月更新。许可证方面,国家级别数据采用 CC0 公共领域许可,可无限制使用;城市级别数据采用 CC BY 4.0 许可,要求署名。此外,CSV 文件同时提供 IP 地址格式(如 1.0.0.0)和数值格式(如 16777216)两种版本,以适应不同的处理需求。

思维导图

这个仓库更偏文档、资源整理或内容型项目,通常没有稳定的代码模块结构,因此不强行生成思维导图。

常见问题

这个项目的数据来源是什么?

数据源自多个权威来源:asn-country 系列基于 AFRINIC、APNIC、ARIN、LACNIC、RIPE NCC 五家 RIR 的 IP-ASN-Country 数据库;geo-asn-country 系列在 ASN 基础上融合了 GeoFeed 数据;dbip-city 系列则基于 DB-IP Lite 数据。所有数据均经过合并与清洗。

数据库的更新频率如何?

国家精度数据库(如 asn-country、geo-asn-country)每日更新;城市精度数据库(dbip-city)每月更新。各模块 README 中的下载表格会显示具体的最新更新时间。

使用这些数据需要遵守什么许可证?

国家级别数据(asn-country、geo-asn-country 等)采用 Creative Commons Zero (CC0) 许可证,可免费用于任何目的且无需署名。城市级别数据(dbip-city)采用 Creative Commons Attribution 4.0 (CC BY 4.0) 许可证,允许自由使用但需要适当署名。每个数据包目录下都包含对应的许可证文件。

CSV 格式和 MMDB 格式有什么区别?我该如何选择?

CSV 是纯文本格式,包含 ip_range_start、ip_range_end 和 country_code 等列,易于阅读和用任何语言处理,但查询效率较低,需自行实现二分查找等算法。MMDB 是二进制格式(兼容 MaxMind DB),查询速度极快,但需使用专用库(如 maxmind)读取。若追求高性能查询(如在线服务),推荐 MMDB;若用于离线分析或简单脚本,CSV 更便捷。

如何将 IP 地址与国家代码关联起来?

对于 CSV 文件,需解析文件并遍历每一行,检查目标 IP 是否落在该行的 ip_range_start 和 ip_range_end 之间(包含端点)。若落在范围内,则对应的 country_code 即为该 IP 的国家代码。对于 MMDB 文件,使用支持该格式的库(如 maxmind)打开数据库,调用查询接口并传入 IP 地址,库会直接返回包含 country_code 等信息的对象。项目 README 和子模块文档提供了具体的下载链接和示例。